Ошибка времени выполнения rpm из-за неправильного файла спецификации
У меня есть файл спецификации, в котором в зависимости от версии SLES мне нужно изменить тег "Требуется:", как показано ниже
#if suse is greated than SLES 11 sp4
%if %0{?suse_version} > 1140
Requires: genisoimage
%else
Requires: mkisofs
%endif
Я строю этот файл RPM на машине SLES 10. После генерации RPM, независимо от ОС, если я запускаю,
rpm -qpR mypkg.rpm
Я получаю mkisofs только как обязательный пакет. Ни в коем случае (даже на SLES 12) я получаю genisoimage как зависимый пакет.
Что может отсутствовать и как это можно исправить.
1 ответ
Это не так, как это работает. Эта переменная оценивается во время сборки, а не во время установки.
Этот макрос расширяется до версии SUSE Linux / openSUSE, в которой собран пакет. Это "1000" для SUSE Linux 10.0, "1020" для openSUSE 10.2 и так далее.
акцент мой, источник
Кроме того, насколько я понимаю, эта переменная относится только к версии OpenSUSE, а не к базовой версии SLES и SP, так что она вообще не будет присутствовать во время сборки на машине SLES 10.