2

Я работаю над встроенной системой и создал несколько RPM. Следующая проблема присутствует в некоторых RPM.

Когда я устанавливаю / обновляю версию 2 RPM поверх версии 1 или устанавливаю версию 1 RPM поверх версии 2, программа установки выдает код выхода 0.

Однако, когда я устанавливаю точно такую же версию RPM поверх существующей установки, он возвращает код выхода 1. Однако большинство других RPM не имеют такого поведения (код выхода 1 при установке RPM поверх существующей установки)

Это по замыслу? Существует специальный сценарий, который обнаружил неудачные установки на основе кода завершения, поэтому мне нужно, чтобы эта установка RPM возвращала 0. Я использую следующую команду.

rpm -Uv --force <rpm-file>

Я попытался создать более подробные журналы, но нет абсолютно никакой разницы между сценариями, в которых он возвращает 0, и сценариями, возвращающими 1.

1 ответ1

1

Для принудительного возврата кода 0 вы можете использовать этот хак: rpm -Uv --force <rpm-file> || true

Хотя ваш скрипт должен действительно запросить установленную версию (rpm -q <package>) и пытаться выполнить установку, только если вы недовольны тем, что там происходит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .