我喜欢做同样的事情:
但是在 ubuntu 22.04 中我找不到“apt-auto-removal”文件。
谢谢 nir
更新:这是此目录的内容
我有“01autoremove”文件,里面的内容如下
/etc/apt/apt.conf.d$ cat 01autoremove
你知道我需要改变什么吗?
答案1
为了保留额外的内核,我认为您必须从本质上复制apt-auto-removal
脚本概念。编写一个脚本,运行该脚本并生成适当的配置,指定APT::NeverAutoRemove
块中要保留的内容。您甚至可以简单地下载旧apt-auto-removal
脚本/etc/kernel/postinst.d/
并对其进行修补,以保留所需的内核数量,但我尚未对此进行测试。
该apt-auto-removal
脚本最近从软件包中删除apt
,并添加了保护内核免受自动删除的逻辑apt
。由于该脚本仅在安装内核时运行,因此有些极端情况无法正确处理。从apt
变更日志。
apt (2.1.16) unstable; urgency=medium
...
* Rewrite of the kernel autoremoval code:
- Determine autoremovable kernels at run-time (LP: #1615381), this fixes the
issue where apt could consider a running kernel autoremovable
- Automatically remove unused kernels on apt {full,dist}-upgrade.
This helps ensuring that we don't run out of /boot space.
- Only keep up to 3 (not 4) kernels.
Ubuntu boot partitions were sized for 3 kernels, not 4.
...
-- Julian Andres Klode <[email protected]> Fri, 08 Jan 2021 21:49:15 +0100
根据apt
源代码看起来使用“运行时”逻辑apt
不会自动删除
- 已启动的内核
- 最新内核
- 前一个内核
我没有看到任何明显的方式来配置不同的行为。以下是一些apt
可能有用的配置选项。
APT
{
...
NeverAutoRemove "<LIST>"; // list of package name regexes
LastInstalledKernel "<STRING>"; // last installed kernel version
VersionedKernelPackages "<LIST>"; // regular expressions to be protected from autoremoval (kernel uname will be appended)
Protect-Kernels "<BOOL>"; // whether to protect installed kernels against autoremoval (default: true)
链接
- 将逻辑移出 shell 脚本的提交
- “仅保护两个内核”的提交
- 更新日志中引用的错误报告
- “仅保护两个内核”提交中引用的错误报告
- 删除前的 apt-auto-removal 脚本。这可以作为您自己解决方案的基础。