您能*模拟*从一个 Ubuntu 版本升级到下一个版本吗?

您能*模拟*从一个 Ubuntu 版本升级到下一个版本吗?

如何升级到较新版本的 Ubuntu?很好地解释了如何进行版本升级。它还说“升级 Ubuntu 100 次中有 99 次都有效”,而我的经验并非如此——我遇到过 6 次中有 6 次的问题(我不怪 Ubuntu——我认为我在没有深入了解自己在做什么的情况下乱搞安装,造成了不寻常的问题)。所以我总是在尝试升级之前对整个系统进行映像。然后我尝试升级,如果升级不顺利,我解决问题的尝试失败了,我会将系统恢复到开始的位置。所有这些都需要相当长的时间。

所以我想知道是否有办法模拟版本升级,这样我就能发现是否存在问题区域,并在实际升级之前解决这些问题。

例如,在我当前的 14.04.3 安装中,apt-get check没有apt-get -f install报告任何问题。但是昨晚我升级到 14.10 后,有 3 或 4 个软件包损坏了,我无法解决冲突。在尝试升级之前,有没有办法查看安装中可能导致升级时出现问题的问题?

我想即使不升级,这也可能是有用的信息 - 这些“隐藏”的问题可能会导致稳定性或性能问题......

答案1

do-release-upgrade将执行发布升级,但do-release-upgrade没有试运行选项。但是,它有一个--sandbox选项。

从运行模式开始--sandbox,对系统所做的任何更改实际上都将写入 ramdisk,并在重新启动时通过 magic os Aufs 重置。这样您就可以在完全正常运行的状态下彻底测试您的机器,而不会冒损坏它的风险。

来自原始邮件列表;

“这个想法……是在“/”中的系统目录顶部的 /tmp 中创建一个可写的覆盖,然后运行发布升级。这样,我们可以轻松测试系统是否能够干净地升级(如果没有发生 dpkg 错误/维护者脚本故障)。所有写入都进入 /tmp,因此在升级后和下次重新启动时,系统将再次回到升级前的状态(模块 /home,未覆盖)。”

有关更多信息,请参阅原来的邮件列表或邮政。

对于 dist-upgrades,您可以使用--dry-runwithsudo apt-get dist-upgrade来模拟运行此命令而无需实际执行升级。

   -s, --simulate, --just-print, --dry-run, --recon, --no-act
       No action; perform a simulation of events that would occur but do not actually change the
       system. Configuration Item: APT::Get::Simulate.

       Simulate prints out a series of lines each one representing a dpkg operation, Configure (Conf),
       Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with and empty set of
       square brackets meaning breaks that are of no consequence (rare).


   -u, --show-upgraded
       Show upgraded packages; Print out a list of all packages that are to be upgraded. Configuration
       Item: APT::Get::Show-Upgraded.

答案2

do-release-upgrade脚本有一个--sandbox选项,可以在 aufs 覆盖文件系统上执行升级。这意味着所有更改都将写入覆盖原始文件的单独文件系统。丢弃覆盖文件,您将回到原始文件系统。免责声明:我没有使用此功能的第一手经验。

无论你采用哪种方法,一定要确保升级前系统是一致的。因此,运行sudo apt-get update && sudo apt-get dist-upgrade并解决运行 之前出现的任何问题do-release-upgrade

相关内容