web-dev-qa-db-ja.com

CentOSで特定のコマンドが属するパッケージを見つける方法は?

たとえば、lococateコマンドはmlocate.i386パッケージに属しています。

yum search locate
mlocate.i386 : An utility for finding files by name
[mirror@home /]$ rpm -qa | grep locate
mlocate-0.15-1.el5.1

yum search updatedb
Loaded plugins: fastestmirror, protectbase
0 packages excluded due to repository protections
=========================================== Matched: updatedb ===========================================
mlocate.i386 : An utility for finding files by name

しかし、どのパッケージフリーコマンドが属するかを見つけるのはそれほど簡単ではありません。

yum search free   // this command just returns too much informationy 
rpm -qa | grep free
freetype-2.2.1-31.el5_8.1   // obviously not the package by which free command is installed

Linuxで特定のコマンドがどのパッケージに属しているのかを知る方法はありますか?たとえば、CentOSまたは他のいくつかのディストリビューション

19
hugemeow

Rpmdbをクエリします。

rpm -qf $(which free)

buntu/Debianfreeコマンドのパッケージを確認する例:

dpkg -S $(which free)

CentOSの場合、yumはどのように提供しますか?

使用する

which free 

それがどこにあるかを見つける

私にとっては

/ usr/bin/free

だからあなたは走ることができます

yum provides /usr/bin/free

そしてそれはあなたにどのパッケージがそれを持っているかを教えてくれます

7
Mark

すべてのRed Hatベースのディストリビューションでは、yumパッケージ管理ユーティリティを使用できます

yum provides `which free`

引数は、特定の機能またはファイルを提供するパッケージを指定します。

1
LoveWithMaths