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


19

たとえば、lococ.i386パッケージに属するLocateコマンドを簡単に見つけることができます。

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またはその他のディストリビューション

回答:



24

freeコマンドのパッケージを確認するUbuntu / Debianの例:

dpkg -S $(which free)

これはインストールされたパッケージに対してのみ機能します。ここで、インストールされていないパッケージで動作するものを見つけまし$ dpkg -S */free$*
-bobrobbob

@bobrobbob私はそれが正しくないのではないかと心配しています。dpkg -S */firefox$*Firefoxがインストールされているサーバーでは複数の結果が得られ、Firefoxがインストールされていないサーバーでは結果が得られないことをテストしました。dpkgローカルにインストールされたパッケージで動作するコマンドであるため、機能しないと思います。非インストールされたパッケージを見つけるには、あなたがに行くことができますpackages.ubuntu.com/...
イェルーンバーミューレンを- MageHost

ああ、私の。あなたは正しい、
それで

1
あなたが取得する場合はdpkg-クエリを:なしパスは、パターンが一致しない 、これを試してくださいdpkg -S "$(readlink -fn "$(which free)")"
パブロA

7

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

使用する

which free 

どこにあるか調べる

私にとっては

/ usr / bin / free

だから、あなたは実行することができます

yum provides /usr/bin/free

どのパッケージに含まれているかがわかります


the commandCentosにインストールされていない場合、または使用できない場合は、を使用できますyum provides <command>。なぜなら、which <command>返されるからですnot <command> in ...
Lane Ouyang

1

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

yum provides `which free`

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

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