Назад | Перейти на главную страницу

спецификация rpm: условное требование на основе версии дистрибутива

Я пытаюсь написать одну спецификацию rpm для RHEL / CentOS / SL 5 и 6. Эта спецификация предназначена для приложения python, поэтому в процессе сборки нет различий. Но в RHEL / CentOS5 мне нужно добавить одну дополнительную зависимость.

Как мне определить зависимость только для el5? Я пробовал следующее:

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

Не работает (сборка на CentOS5 не добавляет зависимости kmod-coretemp).

Я пробовал также следующее:

%if %{?dist} == "el5"

Он сообщает с синтаксической ошибкой. Я уверен, что макрос dist установлен и содержит el5. Но я не уверен, каков синтаксис условных выражений if в rpm? rpmguide не дает подробного ответа.

Вики-сайт Fedora, как обычно, дает лучшие рекомендации по упаковке. Взгляните на Упаковка: DistTag страница. Вы можете использовать %{el5} переменная и сокращенное условное обозначение, чтобы гарантировать, что соответствующий Require строка используется при сборке пакетов для EL5.

%{?el5:Requires: kmod-coretemp}

Возможно, вы захотите добавить dist тег в поле версии, чтобы в дальнейшем избежать путаницы между пакетами:

Release: 1%{?dist}

Видеть Назначение тега Dist.