Gentooでパッケージを安全にアンインストールする

Gentooでパッケージを安全にアンインストールする

Gentoo で特定のパッケージをアンインストールしたかったので、emerge のマニュアル ページを参照しました。--unmerge次のオプションを見つけました。

警告: この操作により重要なパッケージが削除される可能性があります。一致するパッケージをすべて削除します。依存関係のチェックは行われないため、システムの正常な動作に必要なパッケージが削除される可能性があります。引数にはアトムまたはebuildを指定できます。依存関係を考慮したバージョンの場合は、 --マージ解除、 使用--depcleanまたは- プルーン

ただし、アンインストールしたいパッケージがシステム内の他のインストール済みパッケージに必要かどうかをemergeで確認したいのですが、--depcleanその--prune機能は提供されていません。

  • --depclean依存関係としてインストールされたが、不要になったパッケージを削除します。
  • --prune「システムから、インストールされているパッケージの最新バージョン以外をすべて削除します」

の依存関係をチェックするバージョンはないのでしょうか--unmerge?

答え1

あなたが説明したようには動作しないと思いますdepclean。引数なしでは動作しますが、パッケージ名を渡すと、unmerge追加の依存関係チェックと同様に動作します。出典emerge(1):

Depclean は、 の依存関係を認識するバージョンとして機能します--unmerge。1 つ以上のアトムを指定すると、逆依存関係のない一致したパッケージをマージ解除します。逆依存関係を表示するには--depclean、 と一緒に使用します--verbose

私は常に--depclean-c)を使用して個々のパッケージをアンマージします。問題なく動作します

答え2

同じ結果を得る別の方法 (ただし、依存関係をチェックしてマージ解除するコマンドではありません) はemerge --deselect package、ワールド ファイルからパッケージを削除します。これで、 を実行すると、emerge --depclean他のパッケージで必要とされない場合に限り、そのパッケージが削除されます。

答え3

gentoolkit が役に立ちます:

equery d <atom>

最初に依存関係を確認し、依存関係を検査した後にパッケージの削除に進むことができます。

答え4

時々、emerge --unmerge次の警告メッセージが表示されます:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

これは、パッケージをマージ解除する前に依存関係をチェックするための推奨される方法のようです。ただし、これを実現するためのより優れた、より自動化された方法があることを依然として期待しています。

関連情報