Я создаю пакет RPM, который устанавливает некоторые инструменты в систему. Я хочу проверить состояние машины перед установкой моего пакета RPM. Мой первоначальный инстинкт - просто запустить несколько команд из % pre скриптлет и "exit 1", если результат не совсем то, что мне нравится. Но потом я столкнулся этот который говорит:
Все скриптлеты ДОЛЖНЫ завершаться с нулевым статусом выхода.
Есть ли другой способ заставить RPM прервать установку пакета на основе результатов команд оболочки?
Выход из ненулевого значения в скриптлете, безусловно, прервет установку pacakge, но это имеет побочные эффекты. В документе, на который вы ссылаетесь, также обсуждаются последствия выхода вашего скриптлета с ненулевым статусом. Вы должны внимательно прочитать и понять это, прежде чем пытаться реализовать это.
Если нет необходимости прерывать установку в скриптлете, не следует этого делать.
Например, если установка пакета не повредит системе, но программа в пакете просто не будет работать, тогда установка должна быть продолжена, и решение об установке пакета должно быть принято в другом месте. Ваша система управления конфигурацией - идеальное место для этого.