当前位置:  开发笔记 > 编程语言 > 正文

如何找到哪个rpm包提供我正在寻找的文件?

如何解决《如何找到哪个rpm包提供我正在寻找的文件?》经验,为你挑选了3个好方法。

作为一个例子,我正在寻找一个mod_files.sh大概附带php-devel包的文件.我猜想yummod_files.shphp-devel x86_64 5.1.6-23.2.el5_3软件包安装文件,但文件似乎没有安装在我的文件系统上.

如何找出安装特定文件的软件包?我正在寻找我不一定已经在本地下载的软件包,其中可能包含我正在寻找的文件.

我正在使用CentOS 5.



1> rjh..:

这是一个老问题,但目前的答案是不正确的:)

使用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 可以执行其他查询,例如列出包内容,依赖项,反向依赖项等.



2> dj_segfault..:

要知道拥有(或提供)已安装文件的包:

rpm -qf myfilename

注意:此命令不需要以root身份运行(相反sudo yum whatprovides myfilename)


`yum whatprovides ...`也不需要root
这告诉哪些软件包拥有(或提供)已安装的文件.谢天谢地,这就是我在寻找的东西!
在我看来,`rpm -qf `最适合确定哪个包提供已安装的应用程序(因为它可能与当前yum存储库缓存中的不同),并且`yum whatprovides `是最适合确定哪个包提供尚未安装的应用程序.每个人都有自己的目的.
这个命令看起来比yum whatprovides更有效 - 不需要从可能很慢的存储库获取更新.

3> 小智..:

最流行的答案是不完整的:

由于此搜索通常仅针对已安装软件包中的文件执行,因此通过禁用所有外部存储库来快速提供更快的内容(无法禁用隐式"已安装"的repo).

yum --disablerepo=* whatprovides 


然而,在这种情况下,OP专门在系统上寻找**未安装**的丢失文件,即使安装了他认为会有的包,所以他不能使用`--disablerepo =*`
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有