![有人可以为我解释一下 Ubuntu(Debian)dist-upgrade 吗?](https://linux22.com/image/489438/%E6%9C%89%E4%BA%BA%E5%8F%AF%E4%BB%A5%E4%B8%BA%E6%88%91%E8%A7%A3%E9%87%8A%E4%B8%80%E4%B8%8B%20Ubuntu%EF%BC%88Debian%EF%BC%89dist-upgrade%20%E5%90%97%EF%BC%9F.png)
我有一台 Ubuntu 8.04 LTS 服务器。有几个软件包被“保留”了(“以下更新已被保留”) 当我执行 时apt-get upgrade
。据我了解,我可以执行apt-get dist-upgrade
来升级这些软件包,但我有几个顾虑:
如果我做了
dist-upgrade
,我会从 8.04 升级到更高版本吗(我猜是 8.10)?如果是这样,8.04 成为“长期支持”(LTS)有什么意义?这是一个“危险”的过程吗?我假设这些软件包被保留下来,因为它们依赖新的软件包。是否
dist-upgrade
只需提取新的软件包并进行相当简单的升级,还是需要注意一些注意事项?
答案1
命令apt-get 升级不会添加或删除包。 apt-get dist-upgrade将根据需要添加或删除包。
命令apt-get dist-upgrade除非您还更新了源(/etc/apt/sources.list)以指向较新的版本,否则不会自动将您从一个版本升级到另一个版本。
男人apt-get
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated
in /etc/apt/sources.list.
dist-upgrade
dist-upgrade, in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages;
在进行 dist-upgrade 与 upgrade 时,是否有需要注意的特别事项?
在大多数情况下,我总是使用 apt-get dist-upgrade 来将更新应用于系统。当然,要注意添加或删除了哪些新软件包。这种情况经常发生在添加某些东西时,例如与前一个内核不兼容的新内核,您将不得不重新编译模块。如果您有一些必须自行构建的内核模块,那么您可能需要确保为新内核重新编译它。我有几个系统的网络接口不受现有内核支持,因此每次更新内核后我都必须重新编译网络驱动程序。
答案2
upgrade 与 dist-upgrade 实际上是 Debian 术语。在 Debian 中,您可以使用 upgrade 来获取稳定版本中的更改(不会涉及任何像删除这样剧烈的操作),而使用 dist-upgrade 来在版本之间切换。假设不需要删除,dist-upgrade 应该具有与 upgrade 相同的结果。
在版本之间切换需要更改您的 sources.list 以指向新版本。
Ubuntu 没有相同的极端保守的发布模型,因此术语不能清楚地映射 - 您通常只想使用 dist-upgrade,除非您在发布之间切换,在这种情况下您可以使用它自己的升级程序 do-release-upgrade。