如何在 CentOS 上查找某个命令属于哪个包?

如何在 CentOS 上查找某个命令属于哪个包?

例如,我可以轻松找到locate命令属于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

但要找到 free 命令属于哪个包却不那么容易:

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 或其他一些发行版

答案1

查询 rpmdb。

rpm -qf $(which free)

答案2

Ubuntu/Debian检查命令包的示例free

dpkg -S $(which free)

答案3

对于 CentOS,yum 提供什么?

使用

which free 

找出它在哪里

对我来说

/usr/bin/免费

那么你可以运行

yum provides /usr/bin/free

它会告诉你哪个包有它

答案4

对于所有基于 Red Hat 的发行版,你可以使用 yum 包管理实用程序

yum provides `which free`

提供参数指定哪个包提供某个功能或文件。

相关内容