在RHEL/CentOS Linux中,如何查看某个文件、命令是由哪个rpm包提供的?
有 2 个命令可以从文件 rpm 和 yum 中找到 rpm 包。
我们还可以使用 rpm 命令查找包中包含的所有文件。
on it road.com
查找特定包提供的文件和库
要查找包提供的所有文件(二进制文件和库文件),请使用以下命令。
# rpm -ql bash /etc/skel/.bash_logout /etc/skel/.bash_profile /etc/skel/.bashrc /usr/bin/alias /usr/bin/bash /usr/bin/bashbug /usr/bin/bashbug-64 /usr/bin/bg
查找提供特定二进制文件或者库文件的 rpm 包
1.方法1:使用rpm命令
- 使用以下 rpm 命令查找哪个 rpm 包提供特定文件。
# rpm -q --whatprovides [file name]
例如,要查找哪个 rpm 包提供了 /etc/hosts 文件,请使用以下命令:
# rpm -q --whatprovides /etc/hosts setup-2.8.14-23.el6.noarch
要查找提供库文件 /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libgomp.so 的 rpm 包,请使用以下命令。
# rpm -qf /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libgomp.so gcc-4.4.7-18.el6.x86_64
同样,我们也可以使用下面的命令。
# rpm -qf [file name]
例如,
# rpm -qf /etc/hosts setup-2.8.14-23.el6.noarch
方法2:使用yum命令
下面 yum 命令提供了拥有/提供文件名的包。
要使用 yum,系统应该注册到 RHN 或者适当的存储库。
# yum whatprovides [file_name]
例如 :
可以使用以下命令来识别提供特定库文件的包:
# yum whatprovides libstdc++ Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. libstdc++-4.8.5-4.el7.x86_64 : GNU Standard C++ Library Repo : @repo
或者搜索二进制文件:
# yum whatprovides *bin/ls Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. coreutils-8.22-15.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : @repo Matched from: Filename : /bin/ls Filename : /usr/bin/ls
日期:2020-09-17 00:13:38 来源:oir作者:oir