在 Ubuntu 18.04 中禁用内核自动更新(仅限 CLI)

在 Ubuntu 18.04 中禁用内核自动更新(仅限 CLI)

我有一个设置,每次进行内核更新时都需要我进行一些手动更改。

我希望能够手动进行内核更新,而不是通过无人值守升级自动将它们推送到我的系统中。

我只对可以通过 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 内核或许可以解决您的问题。

相关内容