web-dev-qa-db-ja.com

apt-get dist-upgrade時にマークホールドがホールドされない

Aptがカーネルを変更しないようにするにはどうすればよいですか?

カーネルをロックするubuntuシステムを作成するとき、マークホールドはカーネルのアップグレードを妨げません。

カーネルをロックしてロックを確認する

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

distのアップグレードを実行

apt-get dist-upgrade

再起動して確認

uname -r

レポート4.15.0-1025-aws-希望するカーネルではありません。

2
Peter Kahn

カーネルの更新は、パッケージ名にバージョンが含まれているため、複数のバージョンを同時にインストールできるため、少し特別です。したがって、実際には、カーネルを更新するときに、新しい別のカーネルパッケージをインストールします。しばらくすると、古いカーネルパッケージを削除できます。他のほとんどのパッケージのようなインプレースアップグレードではありません。

これは、常に最新の実際のカーネルバージョンパッケージに依存するメタパッケージ(基本的には依存関係のみを持ち、実際のファイルを持たない空のパッケージ)を持つことで実現されます。あなたの場合、それは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

ただし、カーネルの更新(または他のパッケージの更新)を無視すると、最新バージョンで既に修正される既知のセキュリティ問題に対してシステムが脆弱になる可能性があることに注意してください。システムを最新かつ安全に保つ必要があります。

3
Byte Commander