Информация о пакете RPM: Автоматически увеличивающаяся версия

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

i.e.

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

Вернул бы что-то вроде:

Name: package_name
Version: 1.5
Release: 000001

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

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


person user459811    schedule 21.12.2011    source источник


Ответы (3)


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

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

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

person Corey Henderson    schedule 21.12.2011
comment
Есть ли способ изменить только номер версии - person anish; 14.04.2012
comment
Я не понимаю здесь вашего вопроса. - person Corey Henderson; 15.04.2012
comment
Я установил пакет RPM с помощью команды rpm -i, когда я запрашиваю rpm -q, он показывает мне версию, которую я описал в файле спецификаций, теперь я хочу изменить только номер версии, не затрагивая какой-либо файл, как я могу это сделать , - person anish; 15.04.2012
comment
Просто измените номер версии в файле спецификаций и перестройте его. - person Corey Henderson; 15.04.2012
comment
это должна быть опция rpm -i или rpm -U, когда я делаю rpm -U, он удаляет предыдущую версию и устанавливает новую, чего следует избегать - person anish; 15.04.2012

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

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

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

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

person Jasio    schedule 28.02.2016

вы также можете установить переменную ENV следующим образом:

export RPM_VERSION=1.1.1

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

perl -e 'print $ENV{RPM_VERSION}'

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

person Chad Prey    schedule 20.06.2013
comment
Вы знаете, что переменные среды доступны и в bash — просто выполните $(echo $RPM_VERSION), и вам не нужно вызывать perl - person Ramfjord; 17.06.2015