我喜欢自己管理内核,但我不知道如何阻止 apt-get autoremove 删除旧内核。
答案1
apt-get autoremove
,删除已自动安装且不再需要的文件。如果您想要自动移除为了不删除其中的一些,您可以手动将它们标记为已安装。对于您的情况: sudo apt-mark manual
包裹名字。
如果您已经安装了一个主线内核,你需要标记3个包:
linux-headers-版本
Linux 标头-版本-通用
Linux 映像-版本-通用的
如果您使用官方内核l、需要再标记一个包裹:
linux-image-extra-版本-通用的。
您唯一需要做的就是找到正确的版本并替换包名称中的单词。当然,所有三个或四个版本必须相同。
答案2
https://help.ubuntu.com/community/RemoveOldKernels#GUI_Way解释如何将内核标记为自动安装。您可以执行相反的操作。以下是示例命令:
首先,我以没有超级用户权限的方式运行命令:
apt-mark manual '^linux-.*-5\.0\.0-38(-generic)?$'
apt mark 告诉我:
linux-image-unsigned-5.0.0-38-generic can not be marked as it is not installed.
linux-image-5.0.0-38-generic set to manually installed.
linux-headers-5.0.0-38-generic can not be marked as it is not installed.
linux-modules-extra-5.0.0-38-generic set to manually installed.
linux-modules-5.0.0-38-generic set to manually installed.
E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Permission denied)
E: Failed to write temporary StateFile /var/lib/apt/extended_states
这看起来不错,因此我用 运行命令sudo
。
如果你想知道'^linux-.*-5\.0\.0-38(-generic)?$'
访问https://regex101.com/r/Oi9ixx/1
答案3
如果您不介意使用 GUI,可以使用一些程序来解决这个问题。多年来,首选的是 Ubuntu Tweak,但它最近被弃用了。但是,它仍然可用,并且在 Ubuntu 的 LTS 版本中运行。有关如何在 16.04 中安装它的信息,请参阅这个问题。
Ubuntu Tweak 的 Janitor 功能将列出所有可以删除的软件。如果您不想删除内核,只需不选中它们旁边的复选框,然后使用该程序删除其他所有内容。