Während des Updates über die Konsole habe ich versehentlich den Rechner vom Netzstrom getrennt.
Nach einem Neustart kam diese Meldung bei erneuten Updaten.
Internal error. Please report a bug report with logs.
Run save_y2logs to get complete logs.
Caller: /usr/lib/ruby/vendor_ruby/3.1.0/yast/yast.rb:186:in `import_pure'
Details: component cannot import namespace 'Pkg'
import_pure(mname)
Ich lasse das Update immer über die Konsole laufen.
sudo zypper -vv dup --allow-vendor-change
Das gleiche auch, wenn ich " Yast -> Software installieren " starte.
Ich habe den Rechner mehrmals neu gestartet, ohne dass sich der Fehler behoben hat.
Was kann ich in diesem Fall unternehmen ?
Danke für eure Hilfen.
Ich habe das Vorhandensein der Datei “Packages.db” im Verzeichnis /var/lib/rpm [FONT=arial]überprüft.
Dann habe ich die 3 Schritte jeweils mit einem “rpm -qa” nach jedem Schritt ausgeführt.
[/FONT]1. rpm --rebuilddb
2. rpm --initdb
3. rpm --rebuilddb
Anschließend habe ich einen Neustart gemacht.
Die Fehlermeldung ist noch vorhanden, hat sich aber verändert.
tumb_user1@Tuxedo2011:~> sudo zypper -vv dup --allow-vendor-change
[sudo] Passwort für root:
zypper: error while loading shared libraries: libprotobuf-lite-3.21.6.so: cannot open shared object file: No such file or directory
auch beim Öffnen von “Yast → Software installieren”.
Internal error. Please report a bug report with logs.
Run save_y2logs to get complete logs.
Bevor ich den weiteren Schritt (die Datenbank "Package.db mit dem neustem Backup auswechsle) ausführe, möchte ich mich noch mal vergewissern, ob das immer noch zielführend ist. Ich möchte weiteren Schaden vermeiden.
Bitte um kurze Rückmeldung. Danke.
vielleicht helfen kann, habe ich den Eindruck das das Unterbrechen dazu geführt hat das ein Pakket nicht richtig mehr installiert ist.
Und da zypper in Ruby geschrieben ist und ruby deutlich im Fehlermeldung erwähnt ist, habe ich den Eindruck das Ruby Teilweise nicht mehr richtig installiert ist.
Wenn du Btrfs und Snapshots benutzest wäre es sowieso logisch ein früheres Snapshot zu booten und von dort aus den zypper dup zu wiederholen.
Laut Fehlermeldung kann zypper die Shared Library “libprotobuf-lite-3.21.6.so” nicht laden. Die Datei ist defekt oder fehlt vermutlich. Eventuell passt die vorhandene libprotobuf-lite Version durch den Abbruch auch einfach nicht mehr zur installierten libzypp Version, da zypper die libzypp*.so benötigt und diese dann die libprotobuf-lite*.so. Somit schlägt schon der Start von zypper fehl.
Wenn du Btrfs und Snapshots benutzest wäre es sowieso logisch ein früheres Snapshot zu booten und von dort aus den zypper dup zu wiederholen.
ist das die beste Variante das Problem zu beheben. Falls das nicht möglich ist kann man auch einen manuellen Download des zypper RPM und der abhängigen RPM durchführen. Und dann versuchen diese per rpm manuell zu installieren. Und falls das erfolgreich war den Rest per zypper dup auf einen konsistenten Stand zu bringen.
Zur Info zypper ist meiner Meinung nach C++ Code siehe hier https://github.com/openSUSE/zypper. Die Ruby Fehlermeldungen sind von Yast.
Tumbleweed sitzt an diesem Rechner auf, soweit ich mich erinnere, auf ein ext4 filesystem. Snapshots habe ich noch nie gemacht, wenn sie nicht automatisch gemacht werden.
Ich habe unter oben stehenden Link von der Möglichkeit gelesen, wie man ein Backup (/etc/sysconfig/backup) der RPM-Datenbank mit der beschädigten Datenbank austauschen könnte. Wäre das auch eine Möglichkeit ?
Wie auch immer ein Backup der PRM DB oder deren Reperatur löst nicht das zypper Problem mit dem Shared Object.
Bitte mal inhalt von /etc/fstab posten um sicher zu gehen das nicht doch ein brtfs verwendet wird:
@Sauerland,
freut mich Dich hier wieder zu treffen, Du hast schon so oft geholfen.
Poste:
Code:
snapper list
tumb_user1@Tuxedo2011:~> snapper list
Die Konfiguration "Root" ist nicht vorhanden. Snapper ist wahrscheinlich nicht konfiguriert.
Weitere Anweisungen finden Sie in 'man snapper'.
kannst du im Grub Schnappschüsse auswählen?
Momentan kann ich in Yast nichts öffnen. Weiter oben stehende Fehlermeldung.
für mich sieht das zypper Problem so aus als ob die neue libprotobuf-lite-3.21.9.so aus den Update schon aktiv ist aber zypper noch die alte Version libprotobuf-lite-3-21.6.so braucht.
Man könnte diese alte Version https://drive.google.com/file/d/1MnNvSKtcjHOzd7JRWisnf5tbe6dEF1Oe/view?usp=sharing in das Verzeichnis /usr/lib/ kopieren. Dann ein
> sudo /sbin/ldconfig -v
machen und testen ob ein “zypper dup” wieder startet. Es ist aber schon recht wahrscheinlich das da noch einige Probleme auftauchen und dann ist da vermutlich eine Neuinstallation des Systems aus meiner Sicht die beste Option.
Die Default Btrfs Snapshots würde ich nie deaktivieren die lösen genau so ein Problem mit kaum Aufwand.
umb_user1@Tuxedo2011:/usr/lib> dir libproto*
-rwxr-xr-x 1 root root 3470320 2. Nov 12:55 libprotobuf-3.21.9.so
lrwxrwxrwx 1 root root 22 2. Nov 13:11 libprotobuf-c.so.1 -> libprotobuf-c.so.1.0.0
-rwxr-xr-x 1 root root 42388 2. Nov 13:11 libprotobuf-c.so.1.0.0
-rwxr-xr-x 1 root root 878092 2. Nov 12:55 libprotobuf-lite-3.21.9.so
Ich glaube Du liegst mit Deiner Vermutung richtig. Die neue libprotobuf-lite-3.21.9.so ist schon im Verzeichnis. Die alte
libprotobuf-lite-3.21.6.so ist nicht mehr vorhanden.
Wenn ich die alte lib in das Verzeichnis kopiere, wäre es ratsam die neue lib umzubenennen, damit es zu keinen Konflikten kommt ?
Ich würde nur die 3.21.6 Version nach /usr/lib/ kopieren und ldconfig ausführen und die Version aus dem Update nicht ändern.
Das Kommando
> ldd /usr/bin/zypper |grep proto
sollte dann eine Zeile mit dem 3.21.6 Dateinamen liefern. Dann ein Update per zypper dup anwerfen.
Falls zypper sich beschwert das weitere shared objects nicht gefunden werden kannst du den Output von
@Sauerland
Nachdem jetzt das Systemupdate durchgelaufen ist, habe ich im Yast nach der Option Snapshots geschaut.
Unter Verschiedenes -> Dateisystemschnappschuss kommt sofort die Meldung:
Keine Snapper-Konfigurationen vorhanden. Sie müssen mindestens eine
Konfiguration erstellen, um yast2-snapper verwenden zu können.
Die Konfigurationen können Sie mit dem Snapper-Kommandozeilenwerkzeug erstellen.
Unter Grub2 ist keine Option zu finden, mit der man den yast-snapper aktivieren könnte. Sieht so aus, wie wenn man das über die Konsole machen müsste.