спецификация rpm Требуется подстановочный знак в имени пакета

Я создаю RPM с требованием к другому пакету с номером версии в середине имени пакета.

Например softwarepackage10.1-util-10.1.1.x86_64.rpm. Имя изменится в следующем выпуске, например, softwarepackage11.2-util-11.2.1.x86_64.rpm.

У меня нет контроля над другим пакетом.

Мне нужно указать строку Requires для этого пакета с любой версией >= 10.

Могу ли я указать следующее?:

Requires: softwarepackage*-util >= 10


person retrodev    schedule 30.06.2016    source источник


Ответы (1)


Нет, это не будет работать с подстановочным знаком, как вы упомянули. Когда вы попытаетесь установить пакет, это приведет к чему-то вроде следующего:

 ]# rpm -ivh mypackage.rpm --test
 error: Failed dependencies:
       softwarepackage-*-util is needed by mypackage

softwarepackage-* следует назвать более подходящим, но если это ограничение, то в файле спецификаций rpm вы можете использовать define.

 % define softwarepackage_major_version 10
 % define softwarepackage_minor_version 1

В качестве альтернативы вы можете использовать двоичный файл, который предоставляет softwarepackage * -util, и использовать его вместо этого, и позволить менеджеру пакетов разрешить версию и конфликты.

  Requires: /usr/bin/binary-from-softwarepackge
person iamauser    schedule 05.07.2016
comment
Не могли бы вы подробнее рассказать о том, как вы будете использовать макросы #define в дальнейшем? - person retrodev; 07.07.2016