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