apt-get upgrade 和 dist-upgrade 有什么区别?

您经常会看到更新 Debian 和基于 Ubuntu 的发行版的两种常见方法:

sudo apt-get update && sudo apt-get upgrade
sudo apt-get update && sudo apt-get dist-upgrade

其中 apt-get update 部分更新本地软件包缓存,从而告知系统可以升级的软件包。

但是,许多 Linux 用户对 apt-get upgrade 和 apt-get dist-upgrade 的使用感到困惑。在什么情况下应该使用 apt-get upgrade,什么时候应该使用 apt-get dist-upgrade?

在本文中,我将解释 apt-get upgrade 和 dist-upgrade 之间的区别。我还将讨论他们之间如何以不同的方式工作。

upgrade 和 dist-upgrade 都用于升级系统上已安装的软件包。但是,apt-get upgrade 命令无法安装新软件包或从系统中删除已安装的软件包。另一方面,dist-upgrade 可以根据需要安装新软件包或删除现有软件包。

这也意味着您无法使用 apt-get upgrade 升级 Linux 内核版本。为什么?您的系统一次至少保留两个内核。因为当有新的内核版本可用时,它会与已经在使用的内核版本一起安装。由于它涉及安装新软件包,因此 apt-get upgrade 不会升级内核。

apt-get upgrade 和 dist-upgrade 有什么区别?插图
apt-get upgrade 无法“升级”内核版本

dist-upgrade 是 upgrade 的超集。除了升级功能外,它还可以智能地处理包依赖关系的更改。这包括删除不再需要的依赖项包,或解决由于依赖项更改而引起的包之间的冲突。如果需要,它还可以安装新的软件包。

apt-get upgrade 和 dist-upgrade 有什么区别?插图1
apt-get dist-upgrade 可以升级内核版本

它不仅限于内核升级。当您的系统遇到必须安装或删除(依赖)包以升级已安装的软件包的情况时,dist-upgrade 可以帮助您。如果您看到软件包已被保留消息,您可以明确地在这些软件包上运行 dist-upgrade 或运行 apt-get install。

apt-get upgrade 和 dist-upgrade 有什么区别?插图2

此外,如果您希望升级发行版版本,则应在开始发行版升级之前使用 dist-upgrade,以便正确处理所有依赖项。

总结一下:

  • apt-get upgrade 仅升级现有软件包。它不会安装新包或删除现有包。
  • apt-get upgrade 不升级内核版本
  • dist-upgrade 可以删除依赖包或安装新的依赖包(如果需要)
  • dist-upgrade 也可以升级内核版本
  • dist-upgrade 不会升级分发版本

如果 dist-upgrade 是更高级的命令,并且执行 apt-get upgrade 的所有操作,为什么不一直使用它呢?为什么还要费心使用 apt-get upgrade?答案是稳定性和可预测性。

如果您是桌面用户,那么影响不大。但是,如果是服务器系统。在这种情况下,你不能让机器决定是否删除软件包,你肯定不希望已经配置好的服务或者软件被 dist-upgrade 修改或者删除。

此外,曾经有一段时间,升级内核也是一件大事。由系统管理员决定是否升级已安装的内核版本。

那么,这是否意味着作为桌面 Linux 用户,您可以放弃 apt-get upgrade 并一直依赖 dist-upgrade?我这里有一个更好的建议。

apt-get 是一个传统的低级命令,可以做很多事情。它适合由其他工具或系统管理员在脚本中使用。

apt 命令是一个简化版本,面向普通的临时用户。它比 apt-get 做得更好、更简单。

要更新您的 Ubuntu 系统,请使用以下命令:

sudo apt update && sudo apt upgrade

与 apt-get upgrade 不同,apt upgrade 可以安装新软件包,因此可以升级 Linux 内核版本。

标签

发表评论