Instalacja RPM zwraca kod wyjścia 1

2

Pracuję na systemie wbudowanym i stworzyłem kilka RPM. W niektórych RPM występuje następujący problem.

Kiedy instaluję / aktualizuję wersję 2 RPM na wersji 1 lub instaluję wersję 1 RPM na wersji 2, instalacja daje kod wyjścia 0.

Jednak gdy instaluję dokładnie taką samą wersję RPM na istniejącej instalacji, zwraca kod wyjścia 1. Jednak większość innych RPM nie ma tego zachowania (kod wyjścia 1 podczas instalowania RPM na istniejąca instalacja)

Czy to z założenia? Istnieje skrypt niestandardowy, który wykrywa nieudane instalacje na podstawie kodu wyjścia, więc potrzebuję tej instalacji RPM, aby zwrócić 0. Używam następującego polecenia.

rpm -Uv --force <rpm-file>

Próbowałem wygenerować więcej pełnych dzienników, ale nie ma absolutnie żadnej różnicy między scenariuszami, w których zwraca 0, a scenariuszami zwracającymi 1.

BlueSilver
źródło
Dlaczego konieczne jest użycie flagi siły?
bbaja42,
Jest faktycznie używany w skrypcie. Jest używany, aby RPM został zainstalowany, nawet jeśli zgłoszono, że jest już zainstalowany.
BlueSilver,

Odpowiedzi:

1

Aby wymusić kod powrotu 0, możesz użyć tego hacka: rpm -Uv --force <rpm-file> || true

Chociaż naprawdę powinieneś zapytać skrypt o zainstalowaną wersję ( rpm -q <package>) i spróbować zainstalować tylko wtedy, gdy nie jesteś zadowolony z tego, co się tam dzieje.

Phil
źródło