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

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

apt dist-upgradevs. just之间到底有什么区别apt upgrade?我应该使用哪一个?

答案1

以供参考:

apt upgrade将升级所有可以升级的软件包,而无需安装其他软件包或删除任何冲突的已安装软件包。基本上,它将应用所有不包含已更改依赖项的软件包升级。

apt full-upgrade( 的正确等价物apt-get dist-upgrade)如果软件包升级需要安装新软件包或删除冲突的已安装软件包,则也会应用软件包升级。基本上,它将应用所有软件包升级,包括那些具有已更改依赖关系的软件包升级。

在稳定的发行版套件中,当不添加新的 APT 源时,很少会遇到依赖项发生变化的情况,因此通常apt full-upgrade不需要或不应用任何额外的升级apt upgrade,但 Linux 映像包升级除外。Linux 映像包通常作为元包提供,例如Linux 映像-amd64,这取决于实际的版本包,例如Linux-映像-4.19.0-9-amd64。使用 时apt upgrade,Linux 映像元包通常不会升级,因为需要安装新版本的 Linux 映像包。apt full-upgrade另一方面,运行将进行升级,此外,如果新版本定义了相关冲突,它可能会删除旧版本的包(Linux 映像包通常不会出现这种情况,仅举一例!)。

由于已安装的软件包可以通过 删除apt full-upgrade,因此不应以非交互方式调用它。我个人在测试新的 Raspbian 测试套件时遇到过这种情况,由于未解决的依赖关系或冲突的存储库更新,整个 Web 服务器堆栈将被删除。我需要等到存储库不一致的问题解决后,才能进行升级而不会造成混乱。然而,在稳定的套件上我从未遇到过这样的问题。

答案2

这里有一个全面的解释。

https://askubuntu.com/questions/194651/why-use-apt-get-upgrade-instead-of-apt-get-dist-upgrade

如果您希望事情“正常运转”,您可能需要 apt-get dist-upgrade 来确保依赖关系得到解决。

我只需在我的 Kali 机器上使用 sudo apt-get update 然后进行升级即可。它偶尔会询问我是否要删除旧软件包(是),并且我大约每月运行一次 sudo apt-get autoremove 来删除旧软件包。

我的两台 Linux 机器都运行良好并且我会让它们保持最新版本。

相关内容