web-dev-qa-db-ja.com

dpkgによるカーネル更新のブロック

最近私に起こった 厄介なこと が原因で、配布されたすべてのカーネル更新をブロックしたいと思います。 (私はUbuntu 12.04 AMD64派生物を使用しています。)

linux-headerslinux-headers-genericlinux-image、およびlinux-image-extraパッケージへのマイナーバージョン3.2のインストール済みカーネルへのすべての更新をブロックしたいと思います。私が遭遇している問題は、これらすべてにバージョンがあることです。特定のバージョンをブロックすると、新しいバージョンがインストールされるため、何も得られません(例:linux-image-3.2.0-35をブロックした場合、linux-image-3.2.0-36はブロックされており、aptdist-upgradeを使用してインストールできる可能性があります。)

16
Naftuli Kay

使用する必要があるのは holding と呼ばれるapt-getの機能です

これはSynapticまたはDpkgのいずれかで実行できます。dpkgメソッドを使用してカーネルを保持する方法を次に示します。

まず、カーネルイメージ名を確認します

dpkg -l | grep linux-image

私のための出力:

ii  linux-image-3.2.0-4-AMD64              3.2.35-2                           AMD64        Linux 3.2 for 64-bit PCs
ii  linux-image-AMD64                      3.2+46                             AMD64        Linux for 64-bit PCs (meta-package)

次に、dpkgにメタパッケージ(バージョン番号のない一般的なバージョン)を保持するように指示します。

echo linux-image-AMD64 hold | Sudo dpkg --set-selections

次に、これがdpkg -l linux-image-AMD64で機能することを確認できます

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
hi  linux-image-AMD64          3.2+46             AMD64              Linux for 64-bit PCs (meta-package)

下部にある「hi」に注目してください。hは保留、iは現在インストールされていることを意味します。このパッケージはインストールされていますが、アップグレードされません

あなたはこれを逆にすることができます

echo linux-image-AMD64 install | Sudo dpkg --set-selections

もう一度dpkg -l linux-image-AMD64で確認できます

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                       Version            Architecture       Description
+++-==========================-==================-==================-==========================================================
ii  linux-image-AMD64          3.2+46             AMD64              Linux for 64-bit PCs (meta-package)

'ii'に注意してください。最初のiはこのパッケージがインストールされるように設定されていることを意味し、2番目のiは現在インストールされていることを意味します。このパッケージがインストールされ、アップグレードされます

これらのフラグの詳細については、man dpkg、特に「パッケージ選択状態」セクションを参照してください。

17
cjh