web-dev-qa-db-ja.com

yumはどのリポジトリが特定のパッケージを提供しているか教えてくれますか?

質問の短いバージョンを願っています:特定のパッケージがインストールされているマシンを使用している場合、そのパッケージを提供するリポジトリの構成を教えてくれるyumコマンドはありますか? (あるいは、どのリポジトリがまだインストールされていないパッケージを提供するか。)

何らかのコンテキストが必要な場合の背景:私たちには、yumリポジトリの迷路があります。特定のrpmパッケージがインストールされているマシンと、リポジトリの迷路が明らかに不十分に設定されている別のマシンがあるため、そのマシンに必要なパッケージをインストールできません。新しいマシンに必要最小限のリポジトリを追加する必要があります。あるマシンから別のマシンにリポジトリをショットガンすることはできません。外出してrpmを取得するのは選択肢ではありません。再現性が必要だからです。

38
Brian Deacon
yum list packagename

これにより、パッケージが出力の3番目の列にあるリポジトリが表示されます。

既にインストールされているパッケージの場合、3番目の列に「インストール済み」と表示されるだけで、機能しません。その場合は、たとえば「rpm -qi packagename」、通常はベンダー、パッケージャ、およびビルドホストタグは、パッケージがどのリポジトリに属しているかを示します。また、いくつかのレポシンボルがパッケージバージョン番号に追加されることもよくあります。

41
janneb
repoquery -i {packagename} 

これにより、実際のレポジトリ名と、yumが返す役に立たない「インストール済み」が表示されます。 repoqueryはyum-utilsによって提供されます。

26
8None1

yum -v searchを使用すると、パッケージとそのリポジトリが表示されます。--showduplicatesも追加すると、そのパッケージのすべてのバージョンが表示されます。

クレジット: http://www.spinics.net/linux/Fedora/yum/msg11975.html

13
akostadinov

単一のパッケージについては、これを見つけることができます

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を確認できます。

2
sciurus

特定のインストール済みパッケージのリポジトリーを検出するいくつかの方法を以下に示します。

rpm -qi {packagename}

または

repoquery -i {packagename}

参照:

1
jeffmcneill
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]:
0
lcfd