我在 Redhat Enterprise 7.0 实例上安装了以下 2 个软件包
bind-license-9.9.4-14.el7_0.1.noarch
bind-libs-lite-9.9.4-14.el7_0.1.x86_64
“repoquery -i”命令告诉我这些包的源 rpm 是绑定的。
repoquery -i bind-license-9.9.4-14.el7_0.1.noarch
Name : bind-license
Version : 9.9.4
Release : 14.el7_0.1
Architecture: noarch
Size : 26019
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Group : Applications/System
URL : http://www.isc.org/products/BIND/
Repository : rhel-7-server-rpms
Summary : License of the BIND DNS suite
Source : **bind-9.9.4-14.el7_0.1.src.rpm**
Description :
Contains license of the BIND DNS suite.
Similarly if I use the yum downloader to download the source rpms of above 2 packages the bind source rpm (bind-9.9.4-14.el7_0.1.src.rpm) is downloaded.
但是,如果我们尝试更新绑定,这就是我得到的
yum update bind
Loaded plugins: product-id, subscription-manager
Package(s) bind available, but not installed.
**No packages marked for update**
我的问题是为什么 repoquery 和 yumdownloader 报告 bind-9.9.4-14.el7_0.1.src.rpm 作为源 rpm。如果bind是正确的源rpm,那么为什么“yum update bind”会说系统上没有安装bind?
答案1
源 rpm 可以创建一个或多个二进制 rpm。除非您正在构建自己的二进制 rpm,否则无需担心源 rpm。因此,repoquery 向您显示,bind-9.9.4-14.el7_0.1.src.rpm 是绑定许可证的源 rpm。相同的源 rpm 创建bind、bind-libs、bind-license、bind-utils(以及更多)。
答案2
repoquery
将查询存储库,这意味着存储一堆 RPM 的远程服务器,并告诉您有关它的一些信息(即:此 RPM 中包含的文件)。repoquery
不关心您请求的软件包是否安装在您的系统上,除非您添加该--installed
标志。
我猜如果添加此标志,您输入的命令将不会输出任何内容:
repoquery --installed -i bind-license-9.9.4-14.el7_0.1.noarch
所以实际上,Bind
它没有安装在您的系统上。要列出实际安装的软件包,您可以尝试以下操作之一:
repoquery --installed -a
或者
yum list installed