Oracle Linuxで以下の記事に従い「package-cleanup --oldkernels --count=2」と実行したところ実行できなかった。Bingチャットの力を借りて新たな実行方法を入手。
確認環境
[hoge@orclhost]$ cat /etc/*release Oracle Linux Server release 8.9
「package-cleanup --oldkernels --count=2」では実行できず
[hoge@orclhost]$ sudo package-cleanup --oldkernels --count=2 package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes
Bingチャットに聞いてみた
質問
package-cleanupコマンドを実行したところ以下のメッセージが表示されました。対処方法を教えてください。OSはOracle Linux 8.9です
$ sudo package-cleanup --oldkernels --count=2
package-cleanup has to be executed with one of the options: --dupes, --leaves, --orphans, --problems or --cleandupes
回答
Oracle Linux 8.9では、`package-cleanup`コマンドは使用できません。代わりに`dnf`コマンドを使用して、古いカーネルを削除することができます³。
以下のコマンドを実行して、古いカーネルを削除します:
```bash
sudo dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q)
```このコマンドは、最新の2つのカーネルを除いて、インストールされている古いカーネルをすべて削除します。`--latest-limit=-2`オプションは、最新の2つのカーネルを保持することを意味します。
なお、この操作はシステムに影響を及ぼす可能性があるため、実行前にシステムのバックアップを取ることをお勧めします。また、削除操作は管理者権限が必要ですので、`sudo`を使用してコマンドを実行してください。³。
ソース: Bing との会話 2023/12/3
(1) CentOS 古い kernelを整理する & 増殖させない #Linux - Qiita. https://qiita.com/kichise/items/da7d529d0f89d68d7e2c.
(2) kernel の更新時に /boot が足りなくなったら ( package-cleanup .... https://blog.yskw.info/articles/345/.
(3) CentOS/古いカーネルを削除する方法・package-cleanup - Linux .... https://linux.just4fun.biz/?CentOS/%e5%8f%a4%e3%81%84%e3%82%ab%e3%83%bc%e3%83%8d%e3%83%ab%e3%82%92%e5%89%8a%e9%99%a4%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95%e3%83%bbpackage-cleanup.
実行結果
現在存在するカーネルの確認
[hoge@orclhost]$ dnf repoquery --installonly kernel-0:4.18.0-477.21.1.el8_8.x86_64 kernel-0:4.18.0-477.27.1.el8_8.x86_64 kernel-0:4.18.0-513.5.1.el8_9.x86_64 kernel-core-0:4.18.0-477.21.1.el8_8.x86_64 kernel-core-0:4.18.0-477.27.1.el8_8.x86_64 ...
Bingチャットから提案されたコマンドの実行結果
[hoge@orclhost]$ sudo dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q) 依存関係が解決しました。 ==================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ==================================================================================================== 削除中: kernel x86_64 4.18.0-477.21.1.el8_8 @ol8_baseos_latest 0 kernel-core x86_64 4.18.0-477.21.1.el8_8 @ol8_baseos_latest 70 M kernel-devel x86_64 4.18.0-477.21.1.el8_8 @ol8_baseos_latest 53 M kernel-modules x86_64 4.18.0-477.21.1.el8_8 @ol8_baseos_latest 25 M kernel-uek x86_64 5.15.0-106.131.4.el8uek @ol8_UEKR7 0 kernel-uek-core x86_64 5.15.0-106.131.4.el8uek @ol8_UEKR7 106 M kernel-uek-devel x86_64 5.15.0-106.131.4.el8uek @ol8_UEKR7 87 M kernel-uek-modules x86_64 5.15.0-106.131.4.el8uek @ol8_UEKR7 60 M トランザクションの概要 ==================================================================================================== 削除 8 パッケージ 解放された容量: 400 M これでよろしいですか? [y/N]: y トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 削除 : kernel-uek-5.15.0-106.131.4.el8uek.x86_64 1/8 scriptletの実行中: kernel-uek-5.15.0-106.131.4.el8uek.x86_64 1/8 ... 削除しました: kernel-4.18.0-477.21.1.el8_8.x86_64 kernel-core-4.18.0-477.21.1.el8_8.x86_64 kernel-devel-4.18.0-477.21.1.el8_8.x86_64 kernel-modules-4.18.0-477.21.1.el8_8.x86_64 kernel-uek-5.15.0-106.131.4.el8uek.x86_64 kernel-uek-core-5.15.0-106.131.4.el8uek.x86_64 kernel-uek-devel-5.15.0-106.131.4.el8uek.x86_64 kernel-uek-modules-5.15.0-106.131.4.el8uek.x86_64 完了しました!
削除結果
[hoge@orclhost]$ dnf repoquery --installonly kernel-0:4.18.0-477.27.1.el8_8.x86_64 # kernel-0:4.18.0-477.21.1.el8_8.x86_64が削除され、最新の2世代が残っている kernel-0:4.18.0-513.5.1.el8_9.x86_64 kernel-core-0:4.18.0-477.27.1.el8_8.x86_64 ...