如何在 CentOS 或 Fedora 上查找文件属于哪个包
如果您知道所需软件包的名称,则可以使用软件包管理器(例如基于 RedHat 的系统上的 yum
)来安装该软件包。但是,如果您只知道缺少的可执行二进制文件或库文件的名称,并且您想要安装提供该文件的任何包,该怎么办?
在本教程中,我将解释在基于 RHEL 的平台(例如 CentOS 或 Fedora)上如何查找特定文件所属的包。
有两种方法可以找出 CentOS 或 Fedora 上哪个包包含特定文件。
方法一:yum
第一种方法是使用 yum 命令本身。通过 whatprovides
选项,yum
允许您搜索哪个包提供了所请求的文件。使用该选项,您可以指定特定文件的完整路径,或多个文件的通配符。
$ yum whatprovides /usr/bin/mysqladmin
mysql-5.1.66-2.el6_3.x86_64 : MySQL client programs and shared libraries
Repo : base
Matched from:
Filename : /usr/bin/mysqladmin
mysql-5.1.69-1.el6_4.x86_64 : MySQL client programs and shared libraries
Repo : updates
Matched from:
Filename : /usr/bin/mysqladmin
mysql-5.1.67-1.el6_3.x86_64 : MySQL client programs and shared libraries
Repo : updates
Matched from:
Filename : /usr/bin/mysqladmin
mysql-5.1.69-1.el6_4.x86_64 : MySQL client programs and shared libraries
Repo : installed
Matched from:
Filename : /usr/bin/mysqladmin
正如您在上面看到的,位于/usr/bin
中的mysqladmin
命令包含在一个名为mysql
的软件包中。
方法二:repoquery
第二种方法是通过repoquery
,这是一个用于查询 Yum 存储库的命令行实用程序。
要在 CentOS、Fedora 或 RHEL 上安装 repoquery
:
$ sudo yum install yum-utils
要运行 repoquery
来搜索包含文件的包,请使用以下格式。
$ repoquery --whatprovides '/usr/bin/mysqldump'
mysql-0:5.1.69-1.el6_4.x86_64
mysql-0:5.1.66-2.el6_3.x86_64
mysql-0:5.1.67-1.el6_3.x86_64