Невозможность установки RPM программно на этапе спецификации

Я делаю RPM. У данного RPM есть требования, которые не могут быть выражены как предварительные условия RPM, позволяют называть их определенной конфигурацией файловой системы/диска. В настоящее время сбой происходит после установки во время выполнения, когда требования не выполняются.

Я могу проверить необходимые предпосылки в разделе% install, в разделе script. Однако я не могу понять, как сбой установки, если выполняются определенные критерии. Возможно ли завершить установку rpm во время выполнения через некоторый триггер в разделе% install (или какой-либо другой)?

Пример будет выглядеть примерно так: в файле .spec:

%install
if [ -f /some/file ]
then
    FAIL_RPM_INSTALL ## What is this command?
fi

Ответ 1

Оказывается, если вы выйдете на этапе %pre, то установка rpm завершится с ошибкой.

%pre
if [ -f /some/file ]
then
    echo "/some/file exists, it shouldn't"
    exit 1
fi

Ссылка: https://fedoraproject.org/wiki/Packaging:ScriptletSnippets

Ответ 2

%pre
df /data|awk 'END{if ($2 < 10000000) exit 1;}'; 
if [ $? == 1 ]; 
    then echo ERROR not enough space;exit 1;
fi