我在私人笔记本电脑上运行 Kubuntu 14.04。当软件包系统更新我的 Linux 内核时,它会删除旧软件包,只保留 2 个最新版本的内核映像(和相关软件包)。目前,这两个版本是(据我所知)3.13.0-32 和 3.13.0-48。如何让软件包系统停止删除旧内核映像?
我意识到这会给我留下一长串未使用的内核映像,但是我宁愿自己进行清理,也不愿冒着无法启动笔记本电脑的风险。
编辑:根据 Aaron Digulla 的回答,我创建了一个文件,/etc/apt/apt.conf.d/99keep-kernels
内容如下:
APT::NeverAutoRemove
{
"^linux-image-*-generic$";
"^linux-image-*-generic$";
"^linux-headers-*-generic$";
"^linux-headers-*-generic$";
"^linux-image-extra-*-generic$";
"^linux-image-extra-*-generic$";
"^linux-signed-image-*-generic$";
"^linux-signed-image-*-generic$";
"^kfreebsd-image-*-generic$";
"^kfreebsd-image-*-generic$";
"^kfreebsd-headers-*-generic$";
"^kfreebsd-headers-*-generic$";
"^gnumach-image-*-generic$";
"^gnumach-image-*-generic$";
"^.*-modules-*-generic$";
"^.*-modules-*-generic$";
"^.*-kernel-*-generic$";
"^.*-kernel-*-generic$";
"^linux-backports-modules-.*-generic$";
"^linux-backports-modules-.*-generic$";
"^linux-tools-*-generic$";
"^linux-tools-*-generic$";
};
但那没有用。Ubuntu 仍然只保留最新的 2 个内核。
答案1
固定不会对您起作用,因为它会阻止完全升级内核。
查看/etc/apt/apt.conf.d/01autoremove
和/etc/apt/apt.conf.d/01autoremove-kernels
。这些文件包含应自动清除的软件包列表。第二个文件由脚本维护/etc/kernel/postinst.d/apt-auto-removal
为了解决您的问题,请将文件复制/etc/apt/apt.conf.d/01autoremove-kernels
到其中/etc/apt/apt.conf.d/99keep-kernels
并编辑模式以匹配其中的 11 个包的任意版本。
所以
"^linux-image-3\.13\.0-45-generic$";
会成为
"^linux-image-";
此模式现在可匹配任何版本的软件包,并防止apt
删除它们。安装后脚本执行相同的操作,不会产生冲突 - 您的文件版本只会匹配更多软件包,并防止自动删除任何版本。