apt-get dist-upgrade 时 Mark Hold 不起作用

apt-get dist-upgrade 时 Mark Hold 不起作用

我怎样才能防止 apt 更改我的内核?

当我创建一个想要锁定内核的 ubuntu 系统时,mark hold 不会阻止内核升级。

锁定内核并检查锁

apt-mark hold linux-image-4.15.0-1007-aws
apt-mark showholds
     linux-image-4.15.0-1007-aws

执行 dist upgrade

apt-get dist-upgrade

重启并检查

uname -r

报告 4.15.0-1025-aws-不是我想要的内核。

答案1

内核更新有点特殊,因为它们的版本在软件包名称中,因此您可以同时安装多个版本。因此,实际上当您更新内核时,您会安装一个新的、不同的内核软件包。一段时间后,旧的内核软件包可以被删除。它不是像大多数其他软件包那样的就地升级。

这是通过元包(基本上是一个空包,只有依赖项,没有实际文件)来实现的,它始终依赖于最新的真实内核版本包。 在你的情况下,那就是linux-image-aws

在内核更新期间,此元包将更新为具有不同依赖项的版本。这样,包管理器就会被告知另外安装最新的真实内核包。

因此,了解了所有这些,并且apt-mark hold阻止了软件包更新,您会发现这apt-mark hold linux-image-4.15.0-1007-aws不会阻止您获取内核更新,因为该特定的实际内核版本软件包将不会更新。linux-image-aws相反,元软件包将被更新,从而导致安装新的内核软件包。

因此你必须运行:

sudo apt-mark hold linux-image-aws

但是,请注意,忽略内核更新(或任何其他软件包的更新)可能会使您的系统容易受到已知安全问题的攻击,而这些问题已在最新版本中得到修复。您应该保持系统更新和安全。

相关内容