我倾向于执着地想要升级所有我能升级的东西,所以我运行软件更新程序 GUI 工具,并sudo apt update && sudo apt full-upgrade
盲目地安装所有东西。似乎命令行经常有要更新的软件包,而 GUI 没有。我正在运行 20.04。
我的实践是否安全,或者我是否有可能破坏某些东西?有什么推荐的方法可以尽可能保持所有内容的最新状态而不会破坏任何东西?
答案1
您应该使用。sudo apt update && sudo apt upgrade
apt
和之间的大多数差异apt-get
都是表面的。主要例外是upgrade
操作,其行为方式实际上截然不同。对于apt
,upgrade
操作几乎总是足够的,并且大多数建议相反的旧建议并不适用于apt upgrade
。
与 不同apt-get upgrade
,apt upgrade
可以安装新软件包以满足依赖关系。full-upgrade
操作(和dist-upgrade
,是同义词)也可以执行此操作,但它也可以消除软件包,包括标记为已手动安装的软件包。
full-upgrade
大多数关于运行(或其同义词)的建议dist-upgrade
都是没有命令的时代的遗留。带有/ 的apt
命令需要特别小心才能安全使用,即使是非常有经验的用户也没有理由定期运行它们。full-upgrade
dist-upgrade
此外,尽管使用full-upgrade
/dist-upgrade
并仔细审查其提议曾经被广泛推荐,但当时这个建议也值得怀疑。如果出于某种原因你确实想使用apt-get
而不是apt
来达到与 相同的效果apt upgrade
,你可以运行apt-get upgrade --with-new-pkgs
。
总结一下,对于您当前正在做的事情,这可能是您想要的命令:
sudo apt update && sudo apt upgrade
如果由于某种原因您更喜欢使用apt-get
而不是apt
,那么您可以使用这个:
sudo apt-get update && sudo apt-get upgrade --with-new-pkgs
无需使用full-upgrade
/dist-upgrade
进行常规更新安装。在 Ubuntu 的稳定版本(无论是 LTS 还是非 LTS)中,很少需要删除软件包才能升级其他软件包。使用 PPA 或其他第三方存储库时,您可能偶尔会遇到这种情况,但即便如此,您也应该非常小心,并且full-upgrade
/dist-upgrade
仍然不是您经常需要的东西。
最后,请注意,安装新软件包(可以)的一个主要情况apt upgrade
是内核更新。大多数内核更新将新内核作为单独的软件包安装,这样如果新内核不起作用,您仍然可以启动旧内核。特别是如果您仅从命令行进行更新,旧内核会逐渐积累并占用空间。这仍然是不是full-upgrade
可以dist-upgrade
预防或解决的情况。相反,要从命令行卸载大多数旧内核,您可以使用:
sudo apt autoremove
它实际上的作用是删除作为依赖项自动安装的不再需要的软件包。它可以(有时也会)删除除旧内核之外的软件包。它通常可以安全运行,但我建议在继续之前先查看它要做什么。