首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Linux/Redhat源代码rpm的混淆

关于Linux/Redhat源代码rpm的混淆
EN

Stack Overflow用户
提问于 2015-04-14 19:20:55
回答 2查看 204关注 0票数 1

我在Redhat Enterprise7.0实例上安装了以下两个软件包

代码语言:javascript
复制
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是绑定的。

代码语言:javascript
复制
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)将被下载。

但是,如果我们尝试更新绑定,这里就是我得到的

代码语言:javascript
复制
yum update bind
Loaded plugins: product-id, subscription-manager
Package(s) bind available, but not installed.
**No packages marked for update**

我的问题是为什么repoqueryyumdownloader加载器报告为源rpm。如果bind是正确的源rpm,那么为什么"yum更新绑定“表示绑定没有安装在系统上?

EN

回答 2

Stack Overflow用户

发布于 2015-04-15 00:49:36

源代码-RPM从相同的源构建几个包。规范文件具有以下指令(包含中间内容),这些指令声明要构建的包(除了默认的bind包之外):

代码语言:javascript
复制
%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符号的条件块中。在规范文件中,驱动该逻辑的符号位于标头中:

代码语言:javascript
复制
%{?!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
EN

Stack Overflow用户

发布于 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可以构建多个不同名称的二进制包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29635713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档