2011-12-21 36 views
3

我想知道是否有人知道是否有办法自动递增rpm包中的信息的版本号/发行版号。Rpm包信息:自动递增版本

转-qil '包名'

将返回类似:

Name: package_name 
Version: 1.5 
Release: 000001 

是否有办法来自动递增的版本号我每次执行时间的rpmbuild? rpm信息位于spec文件中。

在此先感谢!

回答

4

如果你不介意有划时代的版本号,你可以这样做:

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

我把0在前面的,所以如果你想永远使用比划时代其他一些原因发布标签,而不是更改版本,你可以。

+0

有没有什么办法只更改版本号 – anish 2012-04-14 18:10:08

+0

我不明白你的问题在这里。 – 2012-04-14 20:58:25

+0

我已经使用rpm -i命令安装了一个RPM软件包,当我查询rpm -q时,它向我显示了我在spec文件中描述的版本,现在我想单独更改版本号,而不影响任何文件,我该如何执行这, – anish 2012-04-15 05:29:20

-1

您还可以设置和环境变量,像这样:

export RPM_VERSION=1.1.1 

,然后使用Perl来抓住它:

perl -e 'print $ENV{RPM_VERSION}' 

这就是我关于竹建筑的RPM时使用。

+1

你知道环境变量在bash中也是可用的 - 只要做$( echo $ RPM_VERSION),你不必调用perl – Ramfjord 2015-06-17 19:48:08

0

您可以尝试添加到您的Makefile是这样的:

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

每到这个oneliner运行时,它增加开头的行中找到整数“释放”。

该操作是在原地完成的,出于安全原因,SPEC文件的先前内容被保存在一个备份文件中,其历元编号附在文件名上。如果您只需要一次备份,或者您确信没有错误发生,您也可以使用类似“-i.BAK”的内容,或者只需要“-i”。