如何从升级流中删除内核更新?

如何从升级流中删除内核更新?

我已经构建并安装了较新的内核(6.1.7),并且不再希望使用旧版本(5.*)进行更新。

有没有办法告诉包管理系统跳过这些更新?

例如:


$ sudo apt-get upgrade

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  linux-generic-hwe-22.04 linux-headers-generic-hwe-22.04
  linux-image-generic-hwe-22.04
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

我宁愿保留当前内核,而不安装这个旧内核。

$ uname -a

Linux Machine 6.1.7 #2 SMP PREEMPT_DYNAMIC Wed Jan 18 09:26:45 MST 2023 x86_64 GNU/Linux

这能做到吗?


该解决方案表明以下内容:

看起来不错,我不知道用这种方法解决。还有其他与无人值守更新相关的提议,它们在“/etc/apt/apt.conf.d/50unattended-upgrades”中放置了一个黑名单条目。

那么问题是,“amd64-microcode”、“intel-microcode”和“iucode-tool”条目是什么?

黑名单方法是否更好?如果是的话,它应该放在 apt.conf.d 文件的什么位置?

apt-mark 也能解决这个问题吗?

我不知道。

这篇文章接近答案:

如何从无人值守升级中排除内核更新

感谢您的帮助!

$ sudo apt remove linux-image-generic-hwe-22.04
[sudo] password for machine: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  amd64-microcode intel-microcode iucode-tool linux-headers-generic-hwe-22.04
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  linux-generic-hwe-22.04 linux-image-generic-hwe-22.04
0 upgraded, 0 newly installed, 2 to remove and 1 not upgraded.
After this operation, 43.0 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

我对删除微代码条目有保留意见吗?

绑定似乎表明,超越当前内核的主要版本会留下一些需要的东西。

答案1

当然可以。非常容易。

但是,有一个很大的缺点:不再有自动安全补丁。当您推出自己的内核时,缓解 CVE 的责任现在落在了您的肩上。如果您同意,请继续:

  1. 卸载更新预构建内核二进制包的元包。由于你运行的是 22.04 HWE 内核,因此linux-image-generic-hwe-22.04

    sudo apt remove linux-image-generic-hwe-22.04
    

    这不会删除您当前安装的 Ubuntu 提供的内核。它只会阻止下载和安装新内核。

  2. 检查您已安装的 Ubuntu 提供的内核二进制包。您可以在 GRUB 提示符下或使用 来查看这些包dpkg -l | grep linux-image | grep ii。决定要保留或删除哪些(如果有的话)。建议:保留一个经过测试的良好内核。如果您遇到糟糕的一天,拥有一个已知的良好内核也无妨。

  3. 如果您希望将来恢复使用 Ubuntu 提供的预构建内核,只需重新安装元包即可。它将自动为您的版本引入最新内核(这就是元包的全部用途)。

    请注意,每个 Ubuntu 版本的元包名称都不同,因此请不要尝试在 20.04 或 24.04 上使用该元包。

  4. 您的输出显示您还拥有内核源代码,可能是来自之前构建自己的内核的周期:linux-generic-hwe-22.04linux-headers-generic-hwe-22.04。由于这些将引入您显然不再使用的 5.x 内核源代码,因此也删除这些元包。以及它们引入的软件包(使用dpkg -l | grep linux-generic | grep iidpkg -l | grep linux-headers-generic | grep ii)。请仔细检查版本号,以避免卸载您仍在使用的源!

相关内容