为什么我无法更新源 rpm?

为什么我无法更新源 rpm?

我在 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

相关内容