rpmbuild%{dist}未在CentOS 5.5中定义?
问题描述:
我试图使用%{dist}
标签在我的RPM规范文件提供的Fedora Core(如fc12
),CentOS 5的(如el5
)和亚马逊公司的Linux AMI之间的具体分布依赖性:rpmbuild%{dist}未在CentOS 5.5中定义?
Release: %_svn_revision%{?dist}
和
# Depencencies
%{?rhel:Requires: ...}
%{?fedora:Requires: ...}
不幸的是,%{dist}
没有出现在CentOS的5.5加以界定,而我还没有找到相匹配的CentOS 5.5(我想el5
将匹配,但不会出现)分发特定的条件。 This票报CentOS的缺失%{dist}
在2008年,但自2009年以来
我怎样才能%{dist}
在CentOS的定义,我应该用什么条件来匹配的CentOS 5一直没有更新? 任何RPM专家都可以指出我的方向吗?
答
远程宏在CentOS 5上没有定义,因为它不在/etc/rpm/macros.disttag
- 有一个名为buildsys-macros-rhel
的RPM提供它,或者在Fedora上有buildsys-macros
,但由于某些原因它没有被Centos重新包装。
选项1)下载并安装Fedora构建的宏从here
选项2)调用的rpmbuild --define 'DIST .el5' 每次
选项3)手动编辑/ etc /转/宏.disttag为rhel(5)和dist(.el5)添加宏定义。
然后可以使用这样的条件语句在您的spec文件:
%if 0%{?rhel} == 5
%{Requires: foo}
%endif
答
另一种选择是在规范文件来调用自己的宏中的脚本:
%define distribution %(/usr/lib/rpm/redhat/dist.sh --distnum)
它调用的脚本这是config rpm(redhat-rpm-config)的一部分。您也可以确保该脚本是由有包括:
BuildRequires: redhat-rpm-config
,然后做同样的条件为ggiroux定义:
%if %{distribution} == 5
Requires: glibc.i686, libXext.i386, libXtst.i386
%else
Requires: glibc.i686, libXext.i686, libXtst.i686
%endif
集结宏EL5的伎俩。谢谢你的回答。 – 2011-04-01 02:59:35
请注意,从CentOS 5.7开始,发行版中提供了'buildsys-macros'。参见[Redhat Advisory](http://rhn.redhat.com/errata/RHEA-2011-0985.html)以及[Redhat Bug 613985](https://bugzilla.redhat.com/show_bug.cgi?id = 613985) – 2013-09-11 21:53:49