Установить требования к установке RPM spec - PullRequest
0 голосов
/ 28 ноября 2018

Допустим, у меня есть файл спецификации, который выглядит примерно так:

Name: mypackage
Version: 1.0.0
BuildRequires: cmake
%if 0%{?rhel} >= 7 || 0%{?fedora} >=17
Requires: python3
%else
Requires: python
%endif

Я знаю yum-builddep для установки моих сборочных зависимостей на основе спецификации, мне бы очень хотелось yum-installdep.Кто-нибудь знает простой способ выполнить то, что я хочу, учитывая, что в файле спецификации есть какая-то логика?

РЕДАКТИРОВАТЬ:

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

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Простой ответ, нет.rpmbuild создает спецификацию, и когда у вас есть Requires, он проверяет ее только во время выполнения, а не во время сборки.Только BuildRequires проверяется во время сборки.Вы можете создать частоту вращения в одной фиктивной среде для одной или нескольких runtime сред, как предлагает ваша spec.

Если вы хотите проверить свои встроенные .rpm для python и / или python3 в среде непрерывного тестирования, то вы можете просто запустить установку rpm в режиме test и проверитьрезультат.Вы должны использовать rpm, так как yum не обеспечивает режим dry-run.

$ rpm -Uvh --test mypackage.rpm

или

$ rpm -qp --requires mypackage.rpm

Выше будет сказано, какие пакеты mypackage.rpmнужно в данной среде.Исходя из вашего spec файла, если вы запустите указанную выше команду в тестовой среде Fedora 17+/RHEL7, она скажет вам, что для нее требуется python3, иначе python2

$ rpm -q --requires python3-setuptools | grep python
/usr/bin/python3
python(abi) = 3.6

$ rpm -q --requires python2-setuptools | grep python
/usr/bin/python2
python(abi) = 2.7
0 голосов
/ 28 ноября 2018

Установочные зависимости будут установлены автоматически при установке созданного пакета.yum (или zypper) справится с этим автоматически.

...