我在Redhat Enterprise7.0实例上安装了以下两个软件包
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.类似地,如果我使用yum下载器下载上述2个包的源rpms,则绑定源rpm (bind-9.9.4-14.el7_0.1.src.rpm)将被下载。
但是,如果我们尝试更新绑定,这里就是我得到的
yum update bind
Loaded plugins: product-id, subscription-manager
Package(s) bind available, but not installed.
**No packages marked for update**我的问题是为什么repoquery和yumdownloader加载器将报告为源rpm。如果bind是正确的源rpm,那么为什么"yum更新绑定“表示绑定没有安装在系统上?
发布于 2015-04-15 00:49:36
源代码-RPM从相同的源构建几个包。规范文件具有以下指令(包含中间内容),这些指令声明要构建的包(除了默认的bind包之外):
%package pkcs11
%package sdb
%package libs-lite
%package libs
%package license
%package utils
%package devel
%package lite-devel
%package chroot
%package sdb-chroot也就是说,"bind-“在生成的包中为%package指令中使用的每个对应名称加上前缀。
规范文件还具有条件逻辑,可以由脚本打开;例如,bind-sdb-chroot包在使用SDB符号的条件块中。在规范文件中,驱动该逻辑的符号位于标头中:
%{?!SDB: %global SDB 1}
%{?!test: %global test 0}
%{?!bind_uid: %global bind_uid 25}
%{?!bind_gid: %global bind_gid 25}
%{?!GSSTSIG: %global GSSTSIG 1}
%if 0%{?rhel}
%{?!PKCS11: %global PKCS11 0}
%else
%{?!PKCS11: %global PKCS11 1}
%endif
%{?!DEVEL: %global DEVEL 1}
%global bind_dir /var/named
%global chroot_prefix %{bind_dir}/chroot
%if %{SDB}
%global chroot_sdb_prefix %{bind_dir}/chroot_sdb
%endif因此,如果您要下载源代码-RPM并构建它,则可以根据您提供的命令行选项获得部分或所有这些包。
发布于 2015-04-15 14:37:27
我的问题是为什么repoquery和question加载程序报告绑定-9.9.4-14.el7_0.1.src.rpm作为源rpm。如果bind是正确的源rpm,那么为什么"yum更新绑定“表示绑定没有安装在系统上?
混淆之处在于.src.rom包从未安装在系统上。只有二进制.i686.rom或.x86_64.rpm包是。正如其他人所说,一个源RPM可以构建多个不同名称的二进制包。
https://stackoverflow.com/questions/29635713
复制相似问题