APT 升级软件包然后要求删除它

APT 升级软件包然后要求删除它

我正在使用 Ubuntu 20.04。在过去 4-5 次我使用升级 APT 时,总是升级以下内容

  linux-headers-5.4.0-96 linux-headers-5.4.0-96-generic
  linux-image-5.4.0-96-generic linux-modules-5.4.0-96-generic
  linux-modules-extra-5.4.0-96-generic

当我使用时autoremove,它说这些相同的包将被删除。我是 ubuntu 新手,我不确定我是否在日常工作中使用这些包。但我想知道这里发生了什么?

可能重复

谢谢!

答案1

总结

Ubuntu GA 内核的当前版本是5.4-0-99。您当前拥有的版本是5.4-0-96。APT 建议您将内核升级到最新版本 ( 5.4-0-99)。apt autoremove建议您删除旧版本,即 ( 5.4-0-96)。


linux-headers-5.4.0-96为了更好地理解它,我们以包为例。

linux-headers-5.4.0-96是内核包,内核包与普通的包不同。

一般情况下,普通软件包(如aptitude和 )neofetch在升级时不会更改名称。与普通软件包不同,内核软件包在升级时会更改名称。例如,linux-headers-5.4.0-96会将其名称更改为5.4.0-99

当内核升级时,它会以较新的软件包的形式出现,而不是升级较旧的软件包。例如,linux-headers-5.4.0-96升级到5.4.0-99。此时,软件包的名称linux-headers-5.4.0-96更改为版本5.4.0-99,因此,被 APT(高级打包工具)视为不同的软件包。

根据开发人员和存储库的说法,该软件包5.4.0-99是的升级版本linux-headers-5.4.0-96,因此 APT 是强制安装它,但它不会删除旧版本的软件包,即linux-headers-5.4.0-96

因此,APT 显示有可用的升级linux-headers-5.4.0-96。它不会删除如上所述的旧版本软件包。

因此,apt upgrade将软件包升级到较新版本而不删除旧版本。但是软件包的旧版本怎么办?它会永远留在您的系统中吗?默认情况下,Ubuntu 仅保留 2 个最新内核。如果您的系统有 3 个以上的内核或过时的内核,它将被该apt autoremove命令删除。

答案2

我更新的 Ubuntu 20.04 中 Linux 内核的当前版本是 5.4.0-99。apt 为您提供了将当前内核从版本 5.4.0-96 升级到 5.4.0-99 的选项。默认情况下,当您运行时,Ubuntu 仅保留两个最新安装的内核sudo apt autoremove。如果您的 Ubuntu 有两个或更多比 5.4.0-96 更新的内核版本,sudo apt autoremove则将删除 5.4.0-96 内核,并且如果不再需要,它还将删除任何比 5.4.0-96 更早的已安装内核。

我的 Ubuntu 20.04 上的结果cat /var/log/apt/history.log 显示,Linux 内核于apt upgrade2022-02-08 从版本 5.4.0-97 升级到 5.4.0-99,并apt autoremove于第二天删除了 5.4.0-96 内核。

相关内容