web-dev-qa-db-ja.com

ファイルを提供するrpm

どのrpmsが特定のファイルを提供できるかをリストするコマンドは何ですか:既にインストールされているファイルを提供するrpmまたはインストールされていないファイルを提供できるrpms?

11
David Nehme

すでにインストールされているファイル/パッケージの場合:

 [jb @ smokey〜] $ rpm -qf /etc/sudoers
Sudo-1.6.9p13-8.fc9.x86_64

まだインストールされていないファイルとパッケージの場合:

 [jb @ smokey〜] $ yumは "/ etc/sudoers"を提供します
 Sudo-1.6.9p13-8.fc9.x86_64:指定されたユーザーに制限付きのrootアクセスを許可します
リポジトリ:updates-newkey 
一致元:
ファイル名:/ etc/sudoers 
 
 Sudo-1.6.9p13-4.fc9.x86_64:制限付きのルートアクセスを許可指定されたユーザー
リポジトリ:Fedora 
一致元:
ファイル名:/etc/sudoers

Sudo-1.6.9p13-8.fc9.x86_64 :指定したユーザーに制限付きのルートアクセスを許可します
リポジトリ:インストール済み
一致元:

「yum whatprovides」はパターンマッチであるため、探しているファイルがディレクトリ構造のどこにあるかわからない場合は、引用符とアスタリスクで囲んでください。

yumは "* foo *"を提供します

同様に、探しているものがバイナリであると確信している場合は、次のことができます。

yumは "* bin/foo"を提供します
10
cagenut

まだインストールされていないファイルについては知りませんが、すでにインストールされているファイルについては、rpm -qifを使用できます。

 rpm -qif /bin/ls
名前:coreutils再配置:(再配置不可)
バージョン:5.97ベンダー:Red Hat、Inc。
リリース:23。 el5ビルド日:2009年7月13日月曜日04:21:27 AM MDT 
インストール日:金2009年9月11日04:46:01 AM MDTビルドホスト:hs20-bc1-7.build.redhat.com 
グループ:システム環境/ベースソースRPM:coreutils-5.97-23.el5.src.rpm 
サイズ:9053874ライセンス:GPLv2 + 
署名:DSA/SHA1、2009年7月28日火曜日03 :42:40 AM MDT、キーID 5326810137017186 
パッケージャー:Red Hat、Inc. 
 URL:
概要:GNUコアユーティリティ:シェルスクリプトで一般的に使用される一連のツール
説明:
これらはGNUコアユーティリティです。このパッケージは、
古いGNU fileutils、sh-utils、およびtextutilsパッケージ。
RPMをダウンロードしている場合は、クエリを実行して何がインストールされるかを確認できます。
 rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm
警告:./Server/jzlib-1.0.7-4jpp.1.i386.rpm:ヘッダーV3 DSA署名:NOKEY、キーID 37017186 
名前:jzlib再配置:(再配置不可)
バージョン:1.0.7ベンダー:Red Hat、Inc。
リリース:4jpp。 1ビルド日:2006年8月8日火曜日12:10:03 PM MDT 
インストール日:(インストールされていません)ビルドホスト:hs20-bc1-6.build.redhat.com 
グループ:開発/ライブラリ/ JavaソースRPM:jzlib-1.0.7-4jpp.1.src.rpm 
サイズ:280436ライセンス:BSDスタイル
署名:DSA/SHA1、2007年1月18日木曜日08:49:50 AM MST、キーID 5326810137017186 
パッケージャー:Red Hat、Inc. 
 URL:
要約:JZlibのzlibの再実装ピュアJava 
説明:
 zlibは、自由で汎用的な、法的に邪魔されないように設計されています
-そのは、特許の対象外です-事実上すべてのコンピューターハードウェアおよびオペレーティングシステムで使用するためのロスレスデータ圧縮
ライブラリ。
 zlibは、Jean-loup Gailly(圧縮)およびMark Adlerによって作成されました
(解凍)
/usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db 
/usr/lib/gcj/jzlib/jzlib-1.0。 7.jar.so 
/usr/share/doc/jzlib-1.0.7 
/usr/share/doc/jzlib-1.0.7/LICENSE.txt 
/usr /share/Java/jzlib-1.0.7.jar
/usr/share/Java/jzlib.jar
5
salparadise

Yumベースのリポジトリでは、yum provides */filenameのようなものを試すことができます

2
Trey

afaik、それは純粋なrpmでは不可能です。 rpmは、これをオプション--whatprovidesでインストールされたパッケージにのみ提供します。

yumを使用できる場合は、yum provides <filename>を試してリポジトリを検索してください。

1
Christian

Yumを使用したくない(または使用できない)場合(例:オフラインのマシン)、次のようにして、インストールされていないRPMを検索できます。

# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*

これには時間がかかる場合があるため、たとえばインストールDVDなどの大規模なリポジトリで* .rpmを検索する場合は、しばらくお待ちください。ただし、「-qpl」とは異なり、「-qp --filesbypkg」は、ファイルと、それが属するRPMの両方をリストします。次に例を示します。

# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4

# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs          /usr/lib/libpq.so.4
postgresql-libs          /usr/lib64/libpq.so.4

その場合、明らかな重複はi386およびx86_64パッケージ( "lib64"文字列から明らか)の存在が原因です。

1
Tulio Silva