我正在几个不同的虚拟机上构建软件包(CentOS5 32& 64,CentOS6 32& 64,Fedora等)。生成的RPM文件包含name.version.release.arch.rpm,如:
foo-1.1-1.i386.rpm
但相反,我希望它输出为:
foo-1.1-1.el5.i386.rpm
哪里(在规范文件中?.rpmmacros?)和如何这样做?
提前致谢。
答案 0 :(得分:3)
在.spec文件中使用:
Release: 1%{?dist}
这取代于例如el6 RHEL6等至少在安装了“@Development tools”和rpmdevtools的Oracle Linux 6.5上。
答案 1 :(得分:1)
在Release
标记中:
Release: 1.el5
通常,人们会创建自定义定义,然后包含:
%define OSshort el5
Release: 1%{?OSshort}
然后,您还可以使用逻辑来根据您正在构建的操作系统来定义OSshort。
更新:我修改了Release
标记,只有在定义时才使用OSshort。然后,您可以在spec文件中将其保留为undefined,并在构建命令
$ rpmbuild -bb --define 'OSshort _el5'
编写逻辑来测试操作系统/发行版并自动生成,这涉及解析这有点复杂,我现在找不到一个例子。