現在使用中のカーネルパッケージを除くすべてのカーネルパッケージを削除する

現在使用中のカーネルパッケージを除くすべてのカーネルパッケージを削除する

未使用の他のカーネルをすべて自動的に削除するにはどうすればよいですか?

だからこれは私の状況です。

  • さまざまなバージョンのUbuntu / CentOSを使用する
  • 自動更新がオンになっています。 -> Linuxは多くの新しいカーネルバージョンをダウンロードします。
  • これで、現在使用しているバージョンを除く他のすべてのカーネルバージョンを削除したいと思います。

パスワード:

#find out current kernel version:
uname -r

#check which versions are downloaded to computer
dpkg --get-selections | grep linux-image

#delete desired kernel
sudo apt-get purge [KERNEL]

#autoremove
sudo apt-get autoremove

Linuxには15を超えるコアがあり、50を超えるLinuxを見てみる必要がありました。

答え1

Ubuntuでは、以前のpurge-old-kernelsカーネルアンインストールを使用してインストールできます。

Ubuntu 16.04の場合

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F430BBA5
sudo add-apt-repository ppa:byobu/ppa
sudo apt-get update
sudo apt-get install byobu

以下を追加せずにインストールできますppasudo apt-get install byobu

16.04より低いUbuntuバージョンの場合

sudo add-apt-repository ppa:bikeshed/ppa
sudo apt-get update
sudo apt-get install bikeshed

最新の2つのコアを維持するには、次のコマンドを実行します。

sudo purge-old-kernels

n予約するコア数を指定できます。

sudo purge-old-kernels --keep n

n=1:

sudo purge-old-kernels --keep 1

centOSにパッケージをインストールしますyum-utils

yum install yum-utils

最新のnカーネルを維持するには:

package-cleanup --oldkernels --count=n

n=1:

package-cleanup --oldkernels --count=1

答え2

Centos 8以降では、次のコマンドを使用できます。

dnf remove --oldinstallonly

これにより、以前のバージョンのカーネルがすべて削除されます。欲しいときに使用してください最新のみインストールされたカーネルの配布バージョンです。

私の元の答えは次のとおりです。https://unix.stackexchange.com/a/628434/145515

答え3

このコマンドはすべてのメジャーバージョン4カーネルイメージとヘッダーを削除しますが、実行中のカーネルイメージとヘッダーは削除しません。

apt purge $(dpkg-query -W -f='${binary:Package}\n' 'linux-image-4*' 'linux-headers-4*' | grep -v $(uname -r))

答え4

次のコマンドを試すことができます。 apt-get purgeを実行する前に、grepの出力に現在のカーネルバージョンが含まれていないことを再確認してください。

dpkg --list | grep linux-image | awk '{print $2}' | grep -v linux-image-`uname -r` | xargs apt-get purge

関連情報