我正在几个不同的虚拟机(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?),我该怎么做?
提前致谢。
在 .spec 文件中使用:
Release: 1%{?dist}
这被替换为例如 el6 RHEL6 等。至少在安装了“@Development 工具”和 rpmdevtools 的 Oracle Linux 6.5 上。
在Release
标签中:
Release: 1.el5
通常,人们创建一个自定义定义,然后包括:
%define OSshort el5
Release: 1%{?OSshort}
然后,您还可以使用逻辑根据您正在构建的操作系统来定义 OSshort。
更新:我将Release
标签修改为仅在已定义的情况下使用 OSshort。然后,您可以在规范文件中保留它未定义并在构建命令期间定义它
$ rpmbuild -bb --define 'OSshort _el5'
编写逻辑来测试操作系统/发行版并自动生成涉及解析的逻辑,这有点复杂,我现在找不到示例。