我已经构建并安装了较新的内核(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 的责任现在落在了您的肩上。如果您同意,请继续:
卸载更新预构建内核二进制包的元包。由于你运行的是 22.04 HWE 内核,因此
linux-image-generic-hwe-22.04
sudo apt remove linux-image-generic-hwe-22.04
这不会删除您当前安装的 Ubuntu 提供的内核。它只会阻止下载和安装新内核。
检查您已安装的 Ubuntu 提供的内核二进制包。您可以在 GRUB 提示符下或使用 来查看这些包
dpkg -l | grep linux-image | grep ii
。决定要保留或删除哪些(如果有的话)。建议:保留一个经过测试的良好内核。如果您遇到糟糕的一天,拥有一个已知的良好内核也无妨。如果您希望将来恢复使用 Ubuntu 提供的预构建内核,只需重新安装元包即可。它将自动为您的版本引入最新内核(这就是元包的全部用途)。
请注意,每个 Ubuntu 版本的元包名称都不同,因此请不要尝试在 20.04 或 24.04 上使用该元包。
您的输出显示您还拥有内核源代码,可能是来自之前构建自己的内核的周期:
linux-generic-hwe-22.04
和linux-headers-generic-hwe-22.04
。由于这些将引入您显然不再使用的 5.x 内核源代码,因此也删除这些元包。以及它们引入的软件包(使用dpkg -l | grep linux-generic | grep ii
和dpkg -l | grep linux-headers-generic | grep ii
)。请仔细检查版本号,以避免卸载您仍在使用的源!