2015-04-14 81 views
1

我有以下安裝的RedHat Enterprise 7.0實例混淆的Linux /紅帽源轉

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是綁定2包。

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. 

類似地,如果我使用蔭下載下載上述2包的綁定源的轉速(結合 - 9.9.4-14.el7_0.1.src.rpm)被下載的源極的RPM。

然而,如果我們試圖更新這裏的綁定是我得到

yum update bind 
Loaded plugins: product-id, subscription-manager 
Package(s) bind available, but not installed. 
**No packages marked for update** 

我的問題是,爲什麼repoqueryyumdownloader報告收口9.9.4-14.el7_0.1。 src.rpm作爲源rpm。如果綁定是正確的源rpm,那麼爲什麼「yum update bind」說綁定沒有安裝在系統上?

回答

0

source-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,並建立它,你可以得到一些或所有這些軟件包,這取決於您提供的命令行選項。

0

我的問題是爲什麼repoquery和yumdownloader報告綁定-9.9.4-14.el7_0.1.src.rpm作爲源rpm。如果綁定是正確的源rpm,那麼爲什麼「yum update bind」說綁定沒有安裝在系統上?

困惑是因爲.src.rom包永遠不會安裝在系統上。只有二​​進制.i686.rom或.x86_64.rpm包是。正如其他人所說,一個源RPM可以構建多個不同名稱的二進制包。