在 Ubuntu 18.04 发布之前,我使用的是 Ubuntu 16.04。我使用sudo apt-get update
、sudo apt-get upgrade
和sudo apt-get dist-upgrade
进行更新和升级。使用 Ubuntu 18.04 后,我将 改为使用apt
而不是apt-get
。对我来说奇怪的是sudo apt dist-upgrade
不再起作用:我使用 和 进行更新和升级sudo apt update
,sudo apt upgade
但当我运行 时sudo apt dist-upgrade
,与使用 时相反,什么都没有发生sudo apt-get dist-upgrade
。
当我使用sudo apt-get dist-upgrade
时,一些软件包被删除,其他软件包被安装。但是当我运行 时sudo apt dist-upgrade
,什么都没有发生。我得到的只是:
sudo apt dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
apt
自从我开始使用而不是 以来,每次都会发生这种情况apt-get
。这是否与(即替换和)
有关,或者到底是什么问题?apt
sudo apt upgrade
upgrade
dist-upgrade
答案1
apt-get upgrade
对比apt upgrade
对比apt full-upgrade
apt-get upgrade
仅升级应用程序、工具和实用程序。它不会安装操作系统的新 Linux 内核。
apt upgrade
升级应用程序、工具和实用程序并安装操作系统的新 Linux 内核。但是,它永远不会删除旧软件包。
apt full-upgrade
升级应用程序、工具和实用程序并安装操作系统的新 Linux 内核。如果升级需要,它还会删除旧软件包。
在我看来,它的apt full-upgrade
作用与 相同apt-get dist-upgrade
。也就是说,full-upgrade
将检查并安装新内核(如果可用),并删除旧软件包(如果升级需要删除)。
内核是操作系统的基本组成部分。因此,当您运行apt upgrade
或 时,旧版本的内核永远不会被新版本替换apt full-upgrade
。将安装新版本的内核,并保持现有版本不变。在升级过程中,grub 中的配置将更改为默认从新版本启动。如果新内核由于某种原因无法正常工作,可以从高级 grub 菜单从旧内核启动。
注意,apt full-upgrade
安装最新版本的内核时不会删除旧版本。要删除这些内核,必须使用apt autoremove
。
为什么要将名称从 更改dist-upgrade
为full-upgrade
?
- 如果你使用,
apt-get
那么你需要使用dist-upgrade
- 如果你使用,
apt
那么你需要使用full-upgrade
我认为这dist-upgrade
有点令人困惑。例如,这不会从 Ubuntu 16.04 升级到 Ubuntu 18.04。它只会升级 Ubuntu 16.04 中的内核和其他内容。
我认为full-upgrade
比更直观dist-upgrade
。
看什么是“dist-upgrade”,为什么它比“upgrade”升级得更多?更多细节。
坦白说:我只是 Ubuntu 的用户,我没有做出改变它的决定。这些只是我的个人观点。
希望这可以帮助
答案2
dist-upgrade
在 Ubuntu 中已经被 取代full-upgrade
。
Ubuntu 的老用户记得dist-upgrade
确实经常使用它来安装内核包。内核包名称会随着版本而变化,因此不符合正常的要求upgrade
。full-upgrade
添加它是为了安全地满足 Ubuntu 包流的这一需求。
的最初目的dist-upgrade
是在 Debian 版本之间进行迁移(大致相当于 Ubuntu 的do-release-upgrade
)。因此,对意外后果的保护较少。在同意之前,请仔细阅读提议的更改。
使用dist-upgrade
而不是full-upgrade
可能不会损害健康的系统。十多年来,数百万用户已经解决了 apt 工作流程中的许多错误。但是,对于dist-upgrade
保留损坏的软件包或其他未解决问题的系统,可能会产生意想不到的结果。