fragen stichworte

% Preun broken RPM automatisch entfernen?

Wir haben einen Fehler im Skript %preun eines RPM, das wir in der Vergangenheit verteilt haben. Dies wurde korrigiert, aber jetzt schlägt das Upgrade auf die neuere Version fehl, da die vorherige Version nicht ordnungsgemäß deinstalliert wurde:

Error in PREUN scriptlet in rpm package perl-perfSONAR-OPPD-MP-server
/var/tmp/rpm-tmp.veW9Jb: line 5: syntax error: unexpected end of file
error: %preun(perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch) scriptlet
failed, exit status 2

Dieses Problem kann gelöst werden, indem Sie das veraltete Paket manuell deinstallieren, ohne den %preun -Teil auszuführen und dann den neuen neu installieren:

rpm -e --nopreun perl-perfSONAR-OPPD-MP-server-3.4-1.pSPS.noarch
rpm -i --replacepkgs perl-perfSONAR-OPPD-MP-server-3.5-0.0.a1.pSPS.noarch.rpm

Dies ist eine manuelle Prozedur, bei der der Systemadministrator eingreifen muss, die wir vermeiden möchten.

Kennt jemand eine Möglichkeit, das gleiche durch yum zu tun, so dass das vorherige Paket entfernt wird, damit das neue ohne Fehler installiert werden kann, und zwar mit einem einzigen yum-Befehl oder durch automatische Upgrades von yum?

Wir verwenden CentOS 6, wenn das wichtig ist.

antworten

Es gibt keine bekannte Möglichkeit, Yum-Upgrades mit Buggy-Skripten zu automatisieren: yum parst nicht und gibt auch nicht die nötigen Disabler an rpm lib weiter.