Я пытаюсь написать одну спецификацию 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.