构建一个附加了唯一限定符的 rpm 文件

Rob*_*anu 6 rpm

我在持续集成环境中构建 RPM,我需要区分连续构建,但显然规范文件不会在每次签入时修改。

规范文件头包含类似

Version:        1.0beta7
Release:        1.1
Run Code Online (Sandbox Code Playgroud)

我想覆盖它,以便构建的 RPM 将有一个合格的附加到版本,例如

Version:        1.0.beta7.2913
Run Code Online (Sandbox Code Playgroud)

假设限定符已经可用,作为环境变量,将限定符附加到版本的最简单方法是什么?

fre*_*eit 8

相当简单:

Version: 1.0.beta7.%(echo $ENVVAR)
Run Code Online (Sandbox Code Playgroud)

你可以在 %(); 中运行任何你想要的命令。只要确保输出中没有空格。

就个人而言,我认为将其粘贴在顶部的变量中是一种触摸清洁器:

%define buildnumber %(whatever command to get the build number)

Version: 1.0.beta7.%{buildnumber}
Run Code Online (Sandbox Code Playgroud)

或者使其以设置的变量为条件:

Version: 1.0.beta7%{?buildnumber:.%{buildnumber}}
Run Code Online (Sandbox Code Playgroud)

那应该只打印 '.' 如果设置了 %buildnumber。