Nach dem letzten automatischen mitternächtlichen Update verweigerten alle unsere openSUSE 13.1/13.2-Instanzen jedes weitere Update mit einer rpm-Fehlermeldung:
Offensichtlich war es bei der Erstellung eines der Update-Pakete zu einem Fehler gekommen, der zwar wenig später behoben wurde - nur, wer zu diesem Zeitpunkt bereits das fehlerhafte Paket im System hatte stand nun vor dem klassischen “Henne und Ei”-Problem: theoretisch wäre der Fehler durch das Einspielen des Updates behoben worden, nur praktisch konnte man ihn nicht einspielen weil ja eben die Update-Funktion “broken” ist.
Ein kleiner, aber beherzter Eingriff auf der Kommandozeile löst das Dilemma - im ersten Schritt:
zypper refresh
zypper up rpm
Dieses Update scheitert nun wie angekündigt, jetzt einfach rpm
von Hand mit dem Pfad aus der Fehlermeldung
von Schritt 1 aufrufen, dabei aber darauf achten dass event. Leerzeichen (wie ich Pfade mit Leerzeichen liebe! ;-))
escaped werden:
rpm -F /var/cache/zypp/packages/openSUSE\ Current\ OSS\ updates/x86_64/rpm-4.11.3-8.1.x86_64.rpm
Danach kann das Online-Update wie gewohnt entweder von Hand aufgerufen werden (oder man wartet bis zum nächsten automatischen Aufruf):
/etc/cron.daily/opensuse.org-online_update
PS: wie man sieht habe ich bei uns tägliche Updates eingestellt (was ja auch irgendwie die Ursache für das Problem war), wenn man z.B. wöchentliche Abstände eingestellt hat dann findet sich das Kommando natürlich unter:
/etc/cron.weekly/opensuse.org-online_update
Wenn man sich die Sucherei sparen will: in Wirklichkeit ruft opensuse.org-online_update
nur zypper
auf, was man
natürlich auch von Hand machen kann:
zypper --non-interactive --quiet patch
Wenn man das “—quiet” wegläßt dann sieht man sogar was passiert.