我在 RHEL 6.5 系统上有一些软件包,它们表现出以下令人费解的行为:
- 软件包已安装;
rpm -q
报告软件包已安装;yum search
显示该软件包可用;- 但
repoquery --whatprovides
没有输出任何东西。
一个例子:
$ yum install boost-openmpi
Loaded plugins: dellsysid, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Install Process
Nothing to do
$ rpm -q boost-openmpi
boost-openmpi-1.41.0-18.el6.x86_64
$ yum search boost-openmpi
Loaded plugins: dellsysid, product-id, refresh-packagekit, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
==================================================================================== N/S Matched: boost-openmpi ====================================================================================
boost-openmpi.x86_64 : Runtime component of Boost.MPI library
boost-openmpi-devel.x86_64 : Shared library symlinks for Boost.MPI
boost-openmpi-python.x86_64 : Python runtime component of Boost.MPI library
Name and summary matches only, use "search all" for everything.
$ repoquery --plugins --queryformat="%{NAME}_|-%{VERSION}_|-%{RELEASE}_|-%{ARCH}_|-%{REPOID}" --all --quiet --whatprovides boost-openmpi
$
我对 yum 等的理解是否正确,如果最后一个命令报告包存在并已安装之前的所有其他内容,也应该返回一些内容? (几乎系统上安装的所有其他软件包也会在该repoquery
步骤中报告一些内容。)如果我的理解是正确的,如何修复问题以便 repoquery 再次找到该软件包?
答案1
yum search 还会查看已安装的软件包,使用“yum search -v”获取额外信息(例如在哪里找到它)。我的猜测是,您已经安装了这些,但不可用,您可以使用“yum list extras”(或更好的“yum list distro-extras”,但我认为 el6 中没有)轻松检查这一点。