何时不应使用 apt-get dist-upgrade?

何时不应使用 apt-get dist-upgrade?

我想确保一些事情。我正在运行一个充满信息的数据库并手动设置配置。现在我正尝试将我的 Ubuntu 从 16.04 升级到 18.04。我执行了“apt-get update”和“apt-get upgrade”,但我不确定 apt-get dist-upgrade 的作用是什么?它会擦除或覆盖任何先前定义的配置吗?

答案1

在 Ubuntu 中,您不需要使用apt dist-upgrade。最佳做法是使用apt full-upgrade

dist-upgrade可以追溯到 Ubuntu 诞生之前。

以前,当从 Debian 版本迁移到另一个版本时,您必须手动编辑 sources.list,然后使用 dist-upgrade 来计算和执行升级。与旧的、更费力的方法相比,这是一个巨大的改进。

当 Ubuntu 出现时,Ubuntu 用户开始使用 dist-upgrade 来达到意想不到的目的:内核包经常更改名称,因此普通的命令apt update无法工作。使用 dist-upgrade 重新计算依赖项并引入新的内核包变得很常见。

用这么大的锤子去敲这么小的钉子是有风险的——如果你的源代码发生了变化,apt 可能会对你的系统实施巨大的、意想不到的改变。记住,这就是 dist-upgrade 的初衷

几年前,Ubuntu 开发人员通过添加full-upgradeapt 关闭了这个窗口,它可以保护您的系统免受意外的重大更改。

dist-upgrade是许多 Ubuntu 老用户的习惯,而且很少会给他们带来问题 —— 他们通常不需要改变习惯。然而,我们鼓励新用户了解其中的区别,并full-upgrade在出现问题时使用更有可能保护其系统的工具。

答案2

升级文档解释apt dist-upgrade一下。请注意,不推荐使用此命令。相反,do-release-upgrade推荐使用此命令,并且专门用于服务器。

当您 时apt upgrade,系统会将软件包升级到最新的已知版本。您可以使用 更新这组“已知版本” apt updateapt将仅安装或升级在配置中找到的发行版和发行版的软件包。这意味着 Ubuntu 18.04 应该只下载该特定版本的 Ubuntu 的软件包。

当您执行 时dist-upgradeapt它会执行一些操作,其中之一就是它会更新配置apt以指向新版本。这意味着如果您dist-upgrade从 17.04 升级到 18.04,apt现在将提取 18.04 软件包。 这些配置文件发生变化,需要更改升级期间,您的自定义存储库可能会被暂时禁用

您应该搜索并阅读特定于您的升级路径的说明。例如,搜索“17.04 到 18.04 升级”。查看目标版本的发布页面了解更多信息。Debian 和 Ubuntu 维护者努力寻找干净的升级路径,并为此付出了很多努力,但所有系统都是不同的,很难给出明确的答案。

18.04 版本文档给出具体指示。

默认情况下,apt将要求您覆盖或保留升级过程中检测到的任何更改的配置文件。通常,您会回答希望保留当前版本的配置文件。但是,请参阅笔记关于使用do-release-upgrade而不是apt dist-upgrade来确保这一点!

有时,主要的更改,例如在发行版中从一个应用程序切换到另一个应用程序,这可能会导致复杂情况。您需要检查升级路径是否存在此类更改。例如,更改为 SystemD。

相关内容