質問の短いバージョンを願っています:特定のパッケージがインストールされているマシンを使用している場合、そのパッケージを提供するリポジトリの構成を教えてくれるyumコマンドはありますか? (あるいは、どのリポジトリがまだインストールされていないパッケージを提供するか。)
何らかのコンテキストが必要な場合の背景:私たちには、yumリポジトリの迷路があります。特定のrpmパッケージがインストールされているマシンと、リポジトリの迷路が明らかに不十分に設定されている別のマシンがあるため、そのマシンに必要なパッケージをインストールできません。新しいマシンに必要最小限のリポジトリを追加する必要があります。あるマシンから別のマシンにリポジトリをショットガンすることはできません。外出してrpmを取得するのは選択肢ではありません。再現性が必要だからです。
yum list packagename
これにより、パッケージが出力の3番目の列にあるリポジトリが表示されます。
既にインストールされているパッケージの場合、3番目の列に「インストール済み」と表示されるだけで、機能しません。その場合は、たとえば「rpm -qi packagename」、通常はベンダー、パッケージャ、およびビルドホストタグは、パッケージがどのリポジトリに属しているかを示します。また、いくつかのレポシンボルがパッケージバージョン番号に追加されることもよくあります。
repoquery -i {packagename}
これにより、実際のレポジトリ名と、yumが返す役に立たない「インストール済み」が表示されます。 repoqueryはyum-utilsによって提供されます。
yum -v search
を使用すると、パッケージとそのリポジトリが表示されます。--showduplicates
も追加すると、そのパッケージのすべてのバージョンが表示されます。
クレジット: http://www.spinics.net/linux/Fedora/yum/msg11975.html
単一のパッケージについては、これを見つけることができます
PACKAGE=Ruby-enterprise
repoquery --qf "%{repoid}" $PACKAGE
$ PACKAGEを必要なパッケージの名前に置き換えます。
特定のリポジトリから来たすべてのパッケージを見つけることができます
REPO=Ruby-enterprise-opt
repoquery --repoid=$REPO -a --qf "%{name}" | sort > repo_packages
rpm -qa --qf "%{name}\n" | sort > installed_packages
comm -1 -2 repo_packages installed_packages
$ REPOを、関心のあるリポジトリのIDに置き換えます。 yum repolist
を使用して、有効なすべてのリポジトリのIDを確認できます。
特定のインストール済みパッケージのリポジトリーを検出するいくつかの方法を以下に示します。
rpm -qi {packagename}
または
repoquery -i {packagename}
参照:
yum reinstall [package_name]
その後、確認を求められたら、システムを変更しないようにNを選択できます。
中心のサンプル出力:
Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.6.1a-35.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================
Reinstalling:
mc x86_64 1:4.6.1a-35.el5 base 2.1 M
Transaction Summary
==============================================================================================================================================
Remove 0 Package(s)
Reinstall 1 Package(s)
Downgrade 0 Package(s)
Total download size: 2.1 M
Is this ok [y/N]: