web-dev-qa-db-ja.com

パッケージがどのyumリポジトリからインストールされたかを知る方法は?

Yum(複数のリポジトリーが構成されている)でパッケージをインストールした後、どのリポジトリーからパッケージがインストールされているかを確認するにはどうすればよいですか?

yum info package-name(またはyum list package-name)、パッケージが「インストール済み」であることがわかります。

159
lg.

Yum-utilsがインストールされている場合、repoqueryはユーザーが探している情報を提供します(ここでは 'epel'がリポジトリです)。

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

Yumのバージョンは何ですか?

現在のバージョンでは、インストールされたパッケージが利用可能な最新のものと同じバージョンである場合、インストール元のリポジトリが表示されます。

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

利用可能な新しいパッケージがある場合は、個別に表示されます。新しいバージョンには、利用可能なリポジトリが表示されます。

45
theotherreceive

遅くなりますが(少なくともFedora 15では)同様のクエリにyumdbを使用できます。

yumdb info 'python*'

そして、私が実際に与えられたリポジトリからパッケージをリストするために必要なもの:

yumdb search from_repo 'my-*-repo'
22
Martian

他のすべてが失敗した場合は、yumdbを手​​動で検査できます。 /var/lib/yum/yumdbにあり、インストールされているすべてのパッケージの詳細情報が含まれています。特にfrom_repoに関心があります。たとえば、bind-utilsパッケージの場合:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

必要な情報だけを取得するには:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

新しいバージョンでは、さらに多くのデータが提供されます。たとえばEL 7では、パッケージのダウンロード元の正確なミラーとURLがここに格納されます。

11
Michael Hampton
rpm -qi packagename

ベンダーとパッケージャーを教えてくれます

6
Esmail

Repo epelからインストールされたものを確認するには:(Centos 5.5で動作する必要があります)注、epelという名前のレポがない場合、インストールされているすべてのものを吐き出します。

repoquery --repoid = epel -a |インストールされたxargs yumリスト

5
David A.

Swoogan に基づく回答
RedHatとCentOSでできること

Sudo grep -ir PACKAGE_NAME /var/cache/yum/

結果は次のようになります

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

ここで、repository_nameは、パッケージを見つけることができるリポジトリであり、おそらくリストの最初のリポジトリからインストールされたものです(yum repolistを参照)

4
iddqd

パッケージが最近インストールされた場合は、/ var/cache/yumを確認できます。

そのディレクトリ内には、各リポジトリのディレクトリがあり、その中にパッケージディレクトリがあります。したがって、次のようにします。

find /var/cache/yum -name [package-name]*

ただし、/ etc/yum.confファイルでキャッシュを有効にする必要があります。

cachedir=/var/cache/yum
keepcache=1

yum clean [packages|all]はキャッシュディレクトリをクリアすることに注意してください。

キャッシュディレクトリが空の場合、別の方法があります。 yum info [package]によって読み取られる情報は、/ var/cache/yum/[repo] /primary.xml.gzから取得されます

次のように入力してファイルを確認できます。

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

ただし、yum info [package]が「From repo:」を表示しないマシンでは、「theotherreceive」によって示されます。これは、ファイルがprimary.xmlにないため、その情報を取得する方法がないためです。したがって、パッケージが2つ以上のprimary.xmlファイルにある場合は、システムのリポジトリの優先順位を決定する必要があります。

4
Swoogan

追加のツールをインストールしたり、無関係な情報を手探りしたり出力したりしない、最も単純で最も簡単なアプローチは、次のとおりです。

yum list installed [package name]

3列目には、パッケージのインストール元のリポジトリのIDが表示されます。

これは、grepを使用した元の質問のコメントで言及されていましたが、それは必須ではありません。フィルターするには、パッケージ名をyumに直接渡すだけです。

1
Scott Buchanan

「yum info」に詳細フラグを追加できます。

yum info -v <package_name>

インストールリポジトリは「From repo」出力の下にあります。

1
smw

その情報はどこかに記録されていますか?パッケージにはその情報がなく、yumはパッケージを見つけた後も気にしません。おそらく、パッケージがどのリポジトリにあるかを調べて、どのリポジトリに優先順位があるかを判別することによって、それをつなぎ合わせることができます。

1
Alex

素晴らしい解決策ではありませんが、利用可能なyumリストは、各パッケージの最新バージョンが利用可能な場所を表示することがわかりました。例:

利用できるyumのリスト| grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10アップデート
gstreamer.i386 0.10.21-2.fc10 Fedora
gstreamer-devel.i386 0.10.21-2.fc10 Fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 Fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free

そのため、パッケージで利用可能なyumリストを作成し、インストールされているバージョンをyum list installedを使用して比較し、バージョンが一致する場合、どのリポジトリからのものであるかを把握できます。

1
gareth_bowles

上記のコマンドはどれもうまくいきませんでした。これは私がしなければならなかったことです。

yum provides "*compat-libstdc*"

良いリファレンスはこちらです。

https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf

1
cokedude

だから私はこれがやや古い質問であることを知っています-しかし、私が探していたもののグーグル検索で出てきます。

使用されているリポジトリの一意のリストを取得する方法もあります。

# repoquery -ai | grep 'Repository  : ' | sort | uniq

これにより、パッケージがインストールされたリポジトリが一覧表示されます。

1
Steven Haigh