他のパッケージが依存していないDNFのあるパッケージをすべて削除する方法

他のパッケージが依存していないDNFのあるパッケージをすべて削除する方法

私の問題

ソフトウェアを手作業で構築したかったので、 を使用してすべての依存関係をインストールしましたdnf install <a> <b> <c>

その後、そのソフトウェアは不要になったので、その依存関係もすべてアンインストールしたいと考えました。ただし、インストールされている別のパッケージがこれらのパッケージの 1 つに依存している場合でも (たとえば ) yum remove <a> <b> <c>、すべてのパッケージが削除されます。<b>

私が試したこと

  • を読みましたman dnfが、適切なコマンドが見つかりませんでした。

私の質問

最も簡単な方法は何ですか?

  1. どのパッケージが<a>まだ<b><c>のパッケージに必要なのかを調べます。
  2. dnf remove不要になったパッケージのリスト ( <a><b><c>) からすべてのパッケージを削除しますが、ポイント からはパッケージを削除しません(1.)

何か案が?

ご協力ありがとうございます。不明な点があればコメントしていただければ詳細を追加します。

答え1

Fedoraの場合はパッケージのクリーンアップたとえば、--leavesオプションを使用します。

--leaves ローカル RPM データベース内のリーフ ノードを一覧表示します。リーフ ノードは、他の RPM に依存しない RPM です。

答え2

package-cleanupYumでは、コマンドを使用しますyum-utils。しかし、DNFでは、コマンドとして組み込まれていますdnf autoremoveドキュメント:

dnf [options] autoremove

ユーザーがインストールしたパッケージの依存関係として元々インストールされていたが、そのようなパッケージでは不要になったすべての「リーフ」パッケージをシステムから削除します。

dnf listautomremoveを実行する前に、どのパッケージが削除されるかを確認するためにコマンドを使用することもできます。

dnf list autoremove

また、DNF には動作に別の違いがあり、同様の状況で役立つはずです (ただし、あなたの場合とまったく同じではありません)。メインのソフトウェアが DNF によってインストールされ (DNF の外部で手動でインストールされたのではなく)、 を使用した場合dnf remove、デフォルトでは (yum とは異なり)、そのパッケージ専用に追加され、他には使用されていない依存関係も削除されます。

関連情報