web-dev-qa-db-ja.com

Fedoraで孤立パッケージを削除するにはどうすればよいですか?

UbuntuからFedora14に切り替えたところです。 Ubuntuではapt-get autoremove孤立した/未使用のパッケージを削除すること。 Fedoraで対応するものは何ですか?

43
c0da

package-cleanup --quiet --leaves from yum-utilsパッケージは、他のパッケージに依存していないライブラリパッケージをリストします。残念ながら、それは少し熱心すぎる傾向があります。たとえば、私のシステムでは、libvirtを削除するよう提案されました。 --exclude-bin引数が役立ちます。提案に満足したら、パッケージをクリーンアップするには、次のようにします。

# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
36

Fedora 22以降のyumの代替であるDNFは、autoremoveサブコマンドも提供します。これは モデル化された apt-get/yum autoremoveです。

例:

# dnf autoremove

これは、自動的にインストールされたパッケージとそれ以外の場合は使用されていない依存パッケージをすべて削除しようとします-apt-get autoremoveとほぼ同等です。

# dnf autoremove examplepackage

examplepackageとそのすべての自動的にインストールされた(およびそれ以外の場合は未使用の)依存関係が削除されます。

Yum

Yumには、Fedora 19以降にautoremoveコマンドがあり、Fedora 20/RHEL 7以降に文書化されています。

使い方はdnf実装に似ています。例:

# yum autoremove

または

# yum autoremove examplepackage

Yum removesの動作を変更する

Yumはremoveサブコマンドのデフォルトの動作を変更するための構成オプションをサポートしています(例:/etc/yum.conf経由):

clean_requirements_on_remove=yes

yum.conf(5)

これが設定されると、次のyum removeは、他のパッケージで必要とされない限り、自動インストールされた依存関係も削除しようとします。

次のような方法で、このオプションを一時的にテストすることもできます。

# yum --setopt=clean_requirements_on_remove=1 remove examplepackage

古いFedoraバージョンの回避策

(yum autoremoveサブコマンドが使用できない、またはclean_requirements_on_removeが機能しないFedoraバージョンの場合。)

パッケージのインストール中に、インストールされた依存関係はそのようにマークされます(rpm/yumの比較的新しい機能のようです)。

次のようにして、不要な依存関係を見つけることができます。

$ package-cleanup --leaves -q --all \
    | xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
    | grep -- '- dep' \
    | cut -d' ' -f1 > tmp

このコマンドラインは fenris02のスクリプト から着想を得ています。

tmp(およびおそらくキュレーション)を検査した後、次のような方法でそれらを削除できます。

# xargs yum remove < tmp
33
maxschlepzig

yumプラグイン「remove-with-leaves」をインストールする必要があります。

# yum install yum-plugin-remove-with-leaves.noarch

インストール後:

# yum remove --remove-leaves package

幸運を!

16
mrc
# package-cleanup --orphans >/tmp/junk

/tmp/junkファイルを作成し、コマンドラインからの情報である最初の行を削除するには、次のように入力します。

for file in `cat /tmp/junk`
do
  yum remove $file
done
8
Larry Mohr

注:この答えは正しいですが、RHEL 7+およびFedora 20にのみ適用されます+(自動削除が新機能として追加されている場合)

# yum autoremove

選択したパッケージの削除を確認してください。

4
Chilly Milly

これらの問題を引き起こさないもう1つの方法は、トランザクションを使用することです。

基本システムのセットアップ後、yumを使用してインストールすると、トランザクションが作成されます。削除する予定がある場合は、トランザクションをロールバックします。

https://docs.fedoraproject.org/en-US/Fedora/24/html/System_Administrators_Guide/sec-DNF-Transaction_History.html

0
Vamsi

Fedoraでは、Orphanパッケージは更新する候補リポジトリがないことを意味します!

  1. Orphanパッケージが生成された場合は、yum.repos.d/some.confを無効にします。

    yum distro-sync
    
  2. 他の孤立パッケージでは、コマンドが危険な場合があります。

    yum remove $(package-cleanup --orphans)
    

    または、安全コマンドを使用します。

    yum remove name-of-page
    
0
firo

ラリー・モールの答え

package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs Sudo yum remove

(疑問に思う場合は、最速のミラーのスキップも含まれます。)

0
Bengt