ファイルを提供するrpm


11

特定のファイルを提供できるrpmを一覧表示するコマンドは何ですか?既にインストールされているファイルを提供するrpmまたはインストールされていないファイルを提供できるrpm

回答:


10

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

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

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

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

sudo-1.6.9p13-4.fc9.x86_64:指定されたユーザーの制限付きルートアクセスを許可します
リポジトリ:fedora
次と一致:
ファイル名:/ etc / sudoers

sudo-1.6.9p13-8.fc9.x86_64:指定されたユーザーに制限付きルートアクセスを許可します
リポジトリ:インストール済み
次と一致:
その他:提供する一致:/ etc / sudoers

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

yum whatprovides "* foo *"

同様に、あなたが探しているものがあなたができるバイナリであると確信している場合:

yum whatprovides "* bin / foo"

5

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

rpm -qif / bin / ls
名前:coreutils再配置:(再配置不可)
バージョン:5.97ベンダー:Red Hat、Inc.
リリース:23.el5ビルド日:Mon 13 Jul 2009 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ビルド日:Tue 08 Aug 2006 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 
要約:ピュアJavaでのzlibのJZlib再実装
説明:
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
RPMに関するすべての情報を表示する必要がない場合は、オプションから「-i」を省略できます。


2

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


1

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

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


1

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」文字列から明らかになります)。


-3

RPMSでそれを行う方法がわかりませんが、DebianとUbuntuではプログラムを使用できます apt-file

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.