1

我正在几个不同的虚拟机(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?),我该怎么做?

提前致谢。

4

2 回答 2

3

在 .spec 文件中使用:

Release: 1%{?dist}

这被替换为例如 el6 RHEL6 等。至少在安装了“@Development 工具”和 rpmdevtools 的 Oracle Linux 6.5 上。

于 2014-02-05T16:16:42.060 回答
1

Release标签中:

Release: 1.el5

通常,人们创建一个自定义定义,然后包括:

%define OSshort el5
Release: 1%{?OSshort}

然后,您还可以使用逻辑根据您正在构建的操作系统来定义 OSshort。

更新:我将Release标签修改为仅在已定义的情况下使用 OSshort。然后,您可以在规范文件中保留它未定义并在构建命令期间定义它

$ rpmbuild -bb --define 'OSshort _el5'

编写逻辑来测试操作系统/发行版并自动生成涉及解析的逻辑,这有点复杂,我现在找不到示例。

于 2011-08-15T21:43:27.817 回答