使用yum whatprovides可查询文件所属软件包,如yum whatprovides /usr/bin/ls显示coreutils提供该文件,支持通配符模糊查找,新系统可用dnf替代,已安装文件可用rpm -qf查询。

在Linux中,当你需要知道某个文件是由哪个软件包提供的,可以使用包管理器的相关功能来查询。在基于RPM 的系统(如CentOS、RHEL、Fedora早期版本)中,yum whatprovides 是一个非常实用的命令。
该命令用于查找提供特定文件的软件包,即使该文件尚未安装在系统中也能查询。
基本语法如下:
yum whatprovides "文件名或路径"例如,你想查找 /usr/bin/ls 是由哪个包提供的:
yum whatprovides /usr/bin/ls系统会返回类似结果:
coreutils-8.30-10.el8.x86_64 : The GNU core utilities这说明 /usr/bin/ls 文件由 coreutils 包提供。
如果不确定完整路径,可以使用通配符 * 进行模糊匹配。
比如查找所有可能提供 python3 可执行文件的包:
yum whatprovides "*bin/python3*"这个命令会列出所有包含匹配路径的软件包,帮助你找到正确的安装源。
在较新的系统中,如CentOS 8、RHEL 8 或 Fedora,yum 已被 dnf 取代,但用法几乎一致:
dnf whatprovides /path/to/file例如:
dnf whatprovides /usr/sbin/httpd它会显示提供 Apache 服务器可执行文件的包,通常是 httpd。
如果文件已经存在于系统中,可以直接使用 rpm 命令反向查询:
rpm -qf /usr/bin/ls输出结果为:
coreutils-8.30-10.el8.x86_64注意:此方法仅适用于已安装的文件。
基本上就这些。根据系统使用 yum 或 dnf 的 whatprovides 功能,能快速定位文件来源,对排查依赖或安装缺失命令非常有帮助。
以上就是如何在Linux中查找文件所属包 Linux yum whatprovides查询的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号