作为一个例子,我正在寻找一个mod_files.sh
大概附带php-devel
包的文件.我猜想yum
会mod_files.sh
用php-devel x86_64 5.1.6-23.2.el5_3
软件包安装文件,但文件似乎没有安装在我的文件系统上.
如何找出安装特定文件的软件包?我正在寻找我不一定已经在本地下载的软件包,其中可能包含我正在寻找的文件.
我正在使用CentOS 5.
这是一个老问题,但目前的答案是不正确的:)
使用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
可以执行其他查询,例如列出包内容,依赖项,反向依赖项等.
要知道拥有(或提供)已安装文件的包:
rpm -qf myfilename
注意:此命令不需要以root身份运行(相反sudo yum whatprovides myfilename
)
最流行的答案是不完整的:
由于此搜索通常仅针对已安装软件包中的文件执行,因此通过禁用所有外部存储库来快速提供更快的内容(无法禁用隐式"已安装"的repo).
yum --disablerepo=* whatprovides