
特定のファイルを提供できる rpm を一覧表示するコマンドは何ですか。すでにインストールされているファイルを提供する rpm ですか、それともインストールされていないファイルを提供できる rpm ですか。
答え1
すでにインストールされているファイル/パッケージの場合:
[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 : 指定されたユーザーに対して制限付きルートアクセスを許可します リポジトリ: 更新-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"
答え2
まだインストールされていないファイルについてはわかりませんが、すでにインストールされているファイルの場合は、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 は純粋な Java で zlib を再実装したものです 説明 : 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 jzlib-1.0.7 は、次のディレクトリにあります。 /usr/share/doc/jzlib-1.0.7/LICENSE.txt java - 1.0.7 の jar ファイル java の jzlib.jar をコピーします。RPM に関するすべての情報を表示する必要がない場合は、オプションから「-i」を省略できます。
答え3
yumベースのリポジトリでは、次のようなものを試すことができます。 yum provides */filename
答え4
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」文字列から明らかです)。