package-cleanup (yum) から dnf コマンドへの変更

(2019.1)

package-cleanup コマンド (yum-utils パッケージ) が, いよいよ廃止される.

dnf は, Fedora 18 (2013年1月) で導入され、Fedora 22 (2015年5月) でデフォルトの package manager になった。Fedora 29 ではまだ package-cleanup コマンドは残っているが、アップデートで時々、うまく動かなくなっている。dnf への移行が必要.

Fedora 29 での廃止は見送られたが, Fedora 30 で今度こそ廃止の予定; Yum Won't Be Dropped For Fedora 29

yum 関連は, python2 に依存している残り少ないパッケージの一つ。この他はもう mariadb ぐらいしか残っていない。python2 時代の終わりでもある。

しかしながら、コマンドライン・オプションが変わってしまうため、単にコマンド名を替えるだけでは上手くいかない。

というわけで、簡単に対比表を作っておく。

package-cleanup コマンドと dnf

package-cleanup コマンドは, dnf のサブコマンドで置き換えられる。

dnf は, サブコマンドが多すぎて, man とか info では、追いつかない。DNF Command Reference — DNF 4.0.10-1 documentation

package-cleanup --leaves のアルゴリズムは壊れており、その点でも dnf に移行するメリットがある。

package-cleanup のオプション 内容 同等の dnf サブコマンド
--problems List dependency problems in the local RPM database repoquery --unsatisfied
--orphans List installed packages which are not available from currently configured repositories repoquery --extras
--dupes Scan for duplicates in your rpmdb repoquery --duplicates
--cleandupes Scan for duplicates in your rpmdb and remove older remove --duplicates
--leaves List leaf nodes in the local RPM database repoquery --unneeded
--oldkernels Remove old kernel and kernel-devel packages remove --oldinstallonly

こうやって見ると、検索なのか削除なのかが混乱していたのが、整理されている。