3

我想知道是否有人知道是否有一种方法可以为 rpm 包中的信息自动增加版本/发布号。

IE

rpm -qil 'package_name'

会返回类似:

Name: package_name
Version: 1.5
Release: 000001

有没有办法在我每次执行 rpmbuild 时自动增加版本号?rpm 信息位于规范文件中。

提前致谢!

4

3 回答 3

4

如果您不介意将 epoch 作为版本号,您可以这样做:

Release: 0.%(perl -e 'print time()')

我把 0. 放在前面的原因是,如果你想使用 epoch 以外的东西作为发布标签,而不是更改版本,你可以。

于 2011-12-21T17:34:26.550 回答
0

您可以尝试在您的 makefile 中添加如下内容:

perl -i.`date +"%s"` -pe 'if (/^Release:/) { s#(\d+)#$1+1#e }' YOURSPECFILE.spec

每次运行此 oneliner 时,它都会递增在以“Release:”开头的行中找到的整数。

该操作在原地完成,出于安全原因,SPEC 文件的先前内容保存在备份文件中,文件名附有纪元号。如果您只需要一个备份,您也可以使用“-i.BAK”之类的东西,或者如果您确定不会发生任何错误,则只需使用“-i”。

于 2016-02-28T11:29:37.000 回答
-1

你也可以像这样设置和 ENV 变量:

export RPM_VERSION=1.1.1

然后使用 perl 抓取它:

perl -e 'print $ENV{RPM_VERSION}'

这就是我在 Bamboo 中构建 RPM 时将要使用的内容。

于 2013-06-20T23:53:28.200 回答