我有一个设置,每次进行内核更新时都需要我进行一些手动更改。
我希望能够手动进行内核更新,而不是通过无人值守升级自动将它们推送到我的系统中。
我只对可以通过 CLI 完成的答案感兴趣,因为我没有 gnome-software 或 ubuntu-software GUI。
我找到了一篇讨论如何使用 Ubuntu 14/15 执行此操作的文章:
sudo apt-mark hold linux-image-generic linux-headers-generic
这还能用吗?感觉已经过时了,因为当前内核包都附有版本号,例如 linux-headers-4.15.0-62。如果我告诉系统保留 linux-headers-4.15.0-62,我无法想象保留会阻止升级程序自动安装较新的内核(例如 linux-headers-4.15.0-72)并将其设置为主内核,看看更新实际上并没有替换旧内核,而只是让系统使用新内核。
如果此方法无效,我还可以尝试其他方法吗?
答案1
您还可以将包添加到 50unattended-upgrades 配置文件中:
nano /etc/apt/apt.conf.d/50unattended-upgrades
找到黑名单部分,并进行编辑以包含软件包 - 甚至支持正则表达式:
// List of packages to not update (regexp are supported)
Unattended-Upgrade::Package-Blacklist {
"linux-generic";
"linux-image-generic";
"linux-headers-generic";
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
[编辑我的评论:]
50unattended-upgrades 文件自动将 Package-Blacklist 中提供的标签与包名称进行匹配(不包括版本号等),因此最简单的实现不需要通配符。
如果您想要更进一步,您可以编写正则表达式 (RegEx) 字符串来满足更复杂的要求。在这种情况下,如果表达式包含“.”、“?”或“*”,则假定它是 POSIX RegEx。查看 apt-get 的手册页,在“安装”选项下获取想法。
答案2
更好的方法是运行
sudo apt-mark hold linux-generic linux-image-generic linux-headers-generic
它将保存元软件包。它们不会提取新的内核软件包。
但这不是一个好主意。最好问的是真正的问题。
安装 HWE 内核或许可以解决您的问题。