Информация пакета Rpm: Автоинкрементная версия - PullRequest
3 голосов
/ 21 декабря 2011

Интересно, знает ли кто-нибудь, существует ли способ автоматического увеличения номера версии / выпуска для информации, найденной в пакете rpm.

т.е.

rpm -qil 'имя_пакета'

Вернет что-то вроде:

Name: package_name
Version: 1.5
Release: 000001

Есть ли способ автоматического увеличения номера релиза каждый раз, когда я выполняю rpmbuild? Информация об оборотах находится в файле спецификации.

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 21 декабря 2011

Если вы не против иметь эпоху в качестве номера релиза, вы можете сделать это:

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

Причина, по которой я ставлю 0. впереди, заключается в том, что вы хотите когда-либо использовать что-то другое, кроме эпохив качестве метки релиза, а не изменять версию, можно.

0 голосов
/ 28 февраля 2016

Вы можете попытаться добавить в свой make-файл что-то вроде:

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

Каждый раз, когда запускается этот oneliner, он увеличивает целое число, найденное в строке, начинающейся с «Release:».

Операция выполняется на месте, и по соображениям безопасности предыдущее содержимое файла SPEC сохраняется в резервном файле с номером эпохи, прикрепленным к имени файла.Вы также можете использовать что-то вроде «-i.BAK», если вам нужна только одна резервная копия, или просто «-i», если вы уверены, что ничего плохого не произойдет.

0 голосов
/ 21 июня 2013

Вы также можете установить и ENV переменную так:

export RPM_VERSION=1.1.1

, а затем используйте Perl, чтобы захватить его:

perl -e 'print $ENV{RPM_VERSION}'

Это то, что я собираюсь использовать при создании RPM в Bamboo.

...