2011-12-21 38 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」。