213

例として、パッケージmod_files.shに付属していると思われるファイルを探しています。パッケージと一緒にファイルがインストールされるとphp-devel思いましたが、ファイルはファイルシステムにインストールされていないようです。yummod_files.shphp-devel x86_64 5.1.6-23.2.el5_3

特定のファイルをインストールするパッケージを確認するにはどうすればよいですか? 探しているファイルが含まれている可能性のあるパッケージをローカルにダウンロードしているとは限らない場所を探しています。

CentOS5を使用しています。

4

7 に答える 7

273

これは古い質問ですが、現在の回答は正しくありません:)

yum whatprovidesを使用し、必要なファイルへの絶対パス (ワイルドカードを使用することもできます) を指定します。例えば:

yum whatprovides '*bin/grep'

戻り値

grep-2.5.1-55.el5.x86_64 : The GNU versions of grep pattern matching utilities.
Repo        : base
Matched from:
Filename    : /bin/grep

パッケージrepoqueryで利用可能なツールの出力と速度を好むかもしれません。yum-utils

sudo yum install yum-utils
repoquery --whatprovides '*bin/grep'
grep-0:2.5.1-55.el5.x86_64
grep-0:2.5.1-55.el5.x86_64

repoqueryパッケージの内容、依存関係、逆依存関係などのリストなど、他のクエリを実行できます。

于 2010-03-24T11:06:00.390 に答える
202

すでにインストールされているファイルを所有(または提供)しているパッケージを知るには、次のようにします。

rpm -qf myfilename
于 2009-07-15T19:47:51.120 に答える
31

最も一般的な答えは不完全です:

通常、この検索はインストール済みパッケージのファイルに対してのみ実行されるため、yum whatprovidesはすべての外部リポジトリを無効にすることで非常に高速になります (暗黙の「インストール済み」リポジトリを無効にすることはできません)。

yum --disablerepo=* whatprovides <file>
于 2015-12-11T21:16:41.010 に答える
4

インターネット(リポジトリ)に接続しているときにパッケージを見つけるのは簡単ですが、RedhatまたはCentos DVD内のRPMパッケージにしかアクセスできない場合(これは、サーバーを回復する必要があり、アプリケーションが必要な場合に頻繁に発生します)お勧めしますインターネットやリポジトリから完全に独立した以下のコマンドを使用します。(DVD にはアンインストールされたパッケージがたくさんあると思います)。~/cent_os_dvd にパッケージ フォルダーをマウントし、「semanage」を提供するパッケージを探しているとします。

for file in `find ~/cent_os_dvd/ -iname '*.rpm'`;  do rpm -qlp $file |grep '.*bin/semanage';  if [ $? -eq 0 ]; then echo "is in";echo $file  ; fi;  done
于 2014-01-31T21:35:34.863 に答える
4

http://www.rpmfind.netにアクセスしてファイルを検索します。

多くの異なるディストリビューションとバージョンの結果が得られますが、Fedora や CentOS もポップアップする可能性が高く、yum でインストールするパッケージ名がわかります。

于 2009-07-15T20:06:45.963 に答える