我正在使用 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 upgrade
2022-02-08 从版本 5.4.0-97 升级到 5.4.0-99,并apt autoremove
于第二天删除了 5.4.0-96 内核。