回答:
APT(Advanced Packaging Tool)は、システムにインストールされているすべてのソフトウェアを管理するためにUbuntuが使用するシステムです。パッケージを特定のバージョンに「固定」して、Update Managerの実行時に更新されないようにすることができます。
カーネルパッケージを固定するには、まずカーネルのバージョンを確認する必要があります。これを行う1つの方法は、システム>管理でSynaptic Package Managerを開くことです。
クイック検索テキストフィールドに「linux-generic」と入力し、Enterキーを押します。
「インストール済みバージョン」列にリストされている番号を書き留めます。次のステップで使用します。
次に、ファイル/ etc / apt / preferencesを編集する必要があります。Alt + F2を押して[アプリケーションの実行]ウィンドウを開き、次のように入力して開きます。
gksudo gedit /etc/apt/preferences
これにより、geditウィンドウが開きます。APTで遊んだことがない限り、ほとんどの場合、ウィンドウは空白になります。
ウィンドウに次のように入力し、バージョン番号をSynaptic Package Managerで見つけたバージョン番号に置き換えます。
Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic
Pin: version <insert version here>
Pin-Priority: 1001
ファイルを保存して、geditを閉じます。Update Managerを開くと、Linuxカーネルの更新が非表示になっていることがわかります。
上記のカーネルのパッケージ名を覚えておいてください。
ターミナルを開いて実行します:
sudo -s
そしてヒットenter。
sudoのパスワードを入力します。
echo kernel_package_name hold | dpkg --set-selections
kernel_package_name
固定するカーネルの名前に置き換えます。
今実行してください:
sudo apt-get update && sudo apt-get upgrade
ターミナルを開く
sudo -s
echo kernel_package install | dpkg --set-selections
kernel_packageを固定するパッケージに置き換えます。
今実行してください:
sudo apt-get update && sudo apt-get upgrade
あなたがしようとしていることは、ピン止めと呼ばれています。上記で提供したソースには、手元のタスクを達成するために何をする必要があるかについての基本事項があります。
関連してsuperlexxの提案:その行は「headers」パッケージを見逃します:
dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'
linux-image-3.13.0-48-generic
linux-image-extra-3.13.0-48-generic
それでは、次を単純に使用してみてください。
dpkg -l "*$(uname -r)*" | grep kernel | awk '{print $2}'
linux-headers-3.13.0-48-generic
linux-image-3.13.0-48-generic
linux-image-extra-3.13.0-48-generic
dpkg -l "*$(uname -r)*" | awk '/kernel/{print $2}'
これにより、カーネルの更新を可能にするメタカーネルパッケージが削除されます。
sudo apt purge $(apt-cache rdepends -i --installed linux-{headers,image}-$(uname -r)|awk '!/[0-9]/ && /^[ ]/{print $1}')
(カーネルをアップグレードしたばかりの場合は、最初に新しいカーネルでリブートするか、最新のカーネルリリースを見つけて「$(uname -r)」の代わりに上記で使用する必要があります。)
カーネルの更新はほとんどセキュリティ更新であるため、インストールすることをお勧めします。
Ubuntu 16.04.1では、次のコードが機能します
for i in $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'); do echo $i hold | sudo dpkg --set-selections; done
これはSuperlexxのコードの改善であり、sudo
追加されます
dpkg -l | grep linux-image
見つけるだろう:
こんにちは linux-image-4.4.0-34-generic ...
こんにちは linux-image-extra-4.4.0-34-generic ...
タグはを読み取りますがhi
、ii
ピンを取り外す
for i in $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'); do echo $i install | sudo dpkg --set-selections; done
sudo
、コマンドではなくコメントを入力します
短いバージョン:(ピンを削除するには、「ホールド」を「インストール」に置き換えます)
dpkg -l "*$(uname -r)*" | grep kernel | awk '{print $2,"hold"}' | sudo dpkg --set-selections
すべてのカーネルイメージとヘッダーの状態を確認するには、次を実行します。
dpkg --get-selections | grep "linux-"