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


12

Gentooで特定のパッケージをアンインストールしたかったので、emergeのmanページを閲覧しました。私は--unmergeオプションを見つけました:

警告:このアクションは重要なパッケージを削除する可能性があります!一致するすべてのパッケージを削除します。これは依存関係のチェックを行わないため、システムの適切な動作に必要なパッケージを削除する場合があります。その引数は、アトムまたはebuildです。--unmergeの依存関係を認識するバージョンの 場合は、-- depcleanまたは--pruneを使用します。

ただし、システムにインストールされている他のパッケージにアンインストールするパッケージが必要かどうかをemergeで確認したいと思います。その機能を提供しない--depclean--pruneください:

  • --depclean 依存関係としてインストールされたが、もはや必要ではないパッケージを削除します
  • --prune 「システムからインストールされているパッケージの最高バージョンを除くすべてを削除します」

の依存関係チェックバージョンはありません--unmergeか?

回答:


17

私はdepcleanあなたが説明したように機能するとは思わない。引数はありませんが、パッケージ名を渡すunmergeと、追加の依存性チェックのように機能します。からemerge(1)

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

私は常に--depclean-c)を使用して個々のパッケージの結合を解除します。それはうまくいきます


6

gentoolkitが役立ちます:

equery d <atom>

最初に依存関係を確認してから、依存関係を調べてからパッケージの削除に進むことができます。


5

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


これは、emerge --depcleanを使用してインストールされたすべてのパッケージを削除することを意味しますemerge --oneshot(これらのパッケージが世界中のパッケージで必要でない限り)。
ダニエルクルマン

@danielkullmannはい。依存関係グラフ全体を計算し、世界のどのパッケージによっても引き出されていないものを削除します。を使用emerge --noreplace --selectして、既にインストールされているパッケージを再コンパイルせずに追加できます(btw)。
njsg

1

時々、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.

これは、パッケージをマージ解除する前に依存性チェックを行うための推奨される方法のようです。しかし、これを達成するためのより良い、より自動化された方法があることを、私はまだ望んでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.