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

Ошибка выполнения rpm из-за неисправного файла спецификации

У меня есть файл спецификации, в котором на основе версии SLES мне нужно изменить тег «Requires:», как показано ниже.

#if suse is greated than SLES 11 sp4
%if %0{?suse_version} > 1140 
Requires: genisoimage
%else 
Requires: mkisofs 
%endif

Я создаю этот файл rpm на машине SLES 10. После генерации RPM, независимо от ОС, если я запускаю,

об / мин -qpR mypkg.rpm

Я получаю mkisofs только как обязательный пакет. Ни в одном случае (даже на SLES 12) я получаю genisoimage как зависимый пакет.

Что может отсутствовать и как это исправить.

Это не так. Эта переменная оценивается во время сборки, а не во время установки.

Этот макрос расширяется до версии SUSE Linux / openSUSE где собран пакет. Это «1000» для SUSE Linux 10.0, «1020» для openSUSE 10.2 и так далее.

акцент мой, источник

Кроме того, насколько я понимаю, эта переменная относится только к версии OpenSUSE, а не к базовой версии SLES и SP, поэтому она вообще не будет присутствовать во время сборки на машине SLES 10.