In den letzten Tagen habe ich PIP ausgiebig getestet und Pipenv Tools in meinem Arch-Linux-System. Beim Testen dieser Tools musste ich Python 2.x, Python 3.x-Pakete und einige andere Python-Abhängigkeitspakete viele Male neu installieren und herabstufen. Irgendwann brach mein Arch Linux und Pacman hörte auf zu arbeiten. Immer wenn ich Pacman ausführe, erhalte ich eine Fehlermeldung, die besagt:"pacman:Fehler beim Laden gemeinsam genutzter Bibliotheken:libidn2.so.0:Datei mit gemeinsam genutztem Objekt kann nicht geöffnet werden:Keine solche Datei oder kein solches Verzeichnis" .
pacman:Fehler beim Laden gemeinsam genutzter Bibliotheken:libidn2.so.0:gemeinsame Objektdatei kann nicht geöffnet werden:Datei oder Verzeichnis nicht vorhanden
Nicht nur Pacman, auch einige andere Anwendungen wie Pacaur, Yaourt, Packer, Virtualbox und Transmission usw. funktionierten nicht mehr. Wenn ich versuche, eine dieser Anwendungen zu öffnen, erhalte ich immer wieder diese Meldung:„Fehler beim Laden von gemeinsam genutzten Bibliotheken:libidn2.so.0:Datei mit gemeinsam genutzten Objekten kann nicht geöffnet werden“. Es besteht die Möglichkeit, dass ich etwas deinstalliert habe, an das ich mich nicht erinnern konnte. Zu meinem Pech, es war mein persönliches System und ich möchte es nicht neu installieren, weil es viele Anwendungen hat. Die Neuinstallation des Betriebssystems und aller Anwendungen kann also zwei oder mehr Tage dauern. Nachdem ich wie ein Verrückter intensiv im Arch Linux-Wiki und anderen Linux-Foren gesucht hatte, gelang es mir schließlich, das Problem zu beheben. Wenn Sie jemals auf ein solches Problem stoßen, suchen Sie nirgendwo, laden Sie einfach die Quelldatei herunter und kopieren Sie die fehlende(n) Datei(en) nach /usr/lib/ Mappe. Soweit ich im Internet gesucht habe, scheint diese Methode bisher die einfachste zu sein. Lesen Sie weiter, um zu erfahren, wie ich diesen Fehler behoben habe.
Fehler „Pacman:Fehler beim Laden gemeinsam genutzter Bibliotheken“ in Arch Linux behoben
Wie ich bereits sagte, bekomme ich immer wieder diesen Fehler - "pacman:Fehler beim Laden von gemeinsam genutzten Bibliotheken:libidn2.so.0:Datei mit gemeinsam genutztem Objekt kann nicht geöffnet werden:Keine solche Datei oder kein solches Verzeichnis" Wenn ich den Pacman-Befehl oder AUR-Helfer wie Pacaur, Packer, Yaourt ausführe, kann ich nicht einmal die VirtualBox-Anwendung und den Transmission-Client öffnen. Das eigentliche Problem hier ist also die Datei "libidn2.so.0" ist verschwunden. Wir müssen es herausfinden!
$ ls -la /usr/lib/libidn*
Beispielausgabe von meinem Arch-Linux-System:
lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so -> libidnkitlite.so.1.0.2 lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so.1 -> libidnkitlite.so.1.0.2 -rw-r--r-- 1 root root 276352 Jul 22 2013 /usr/lib/libidnkitlite.so.1.0.2 lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so -> libidnkit.so.1.0.2 lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so.1 -> libidnkit.so.1.0.2 -rw-r--r-- 1 root root 282368 Jul 22 2013 /usr/lib/libidnkit.so.1.0.2 lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so -> libidn.so.11.6.16 lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so.11 -> libidn.so.11.6.16 -rwxr-xr-x 1 root root 210872 Aug 15 19:00 /usr/lib/libidn.so.11.6.16
Ich hatte "libidn.so", kann aber "libidn2.so.0" nicht finden. Da Pacman und andere Paketmanager nicht funktionierten, gibt es keine Möglichkeit, Pakete aus dem offiziellen Repository oder dem lokalen Cache zu installieren, zu aktualisieren oder herunterzustufen. Also dachte ich, dass der einzige Weg sein könnte, das Paket mit der fehlenden Datei aus dem Internet herunterzuladen, es zu extrahieren und schließlich die fehlende(n) Datei(en) in das Verzeichnis /usr/lib/ zu kopieren. Lassen Sie mich ein Verzeichnis erstellen, um die libdin2-tar-Datei zu speichern:
$ mkdir libidn
$ cd libidn
Suchen Sie die neueste Version dieses Pakets und laden Sie sie herunter. Eine schnelle Google-Suche brachte mich hier . Extrahieren Sie die Datei:
$ tar xf libidn2-2.0.4-2-x86_64.pkg.tar.xz
Der obige Befehl extrahierte den Inhalt der Datei in ein Verzeichnis namens "usr". Gehen Sie zum Ordner usr/lib:(Hinweis - Es ist usr/lib , nicht /usr/lib )
$ cd usr/lib
Kopieren Sie abschließend die fehlende Datei, in unserem Fall ist es libidn2.so.0 , in das Verzeichnis /usr/lib/ Ihres Arch Linux-Systems.
$ sudo cp libidn2.so.0 /usr/lib/
Dann lief ich:
$ sudo pacman -syu
Aktualisieren Sie Arch Linux
Voila! Pacman funktioniert jetzt!! Hoppla! Oh nein, warte.. Es hat nicht funktioniert. Ich habe diesen Fehler nach wenigen Minuten erhalten.
[....] (511/511) checking keys in keyring [######################] 100% (511/511) checking package integrity [######################] 100% (511/511) loading package files [######################] 100% (511/511) checking for file conflicts [######################] 100% error: failed to commit transaction (conflicting files) libidn2: /usr/lib/libidn2.so.0 exists in filesystem Errors occurred, no packages were upgraded.
Um dies zu beheben, habe ich Folgendes ausgeführt:
$ sudo pacman -S libidn2 --force
Dann habe ich das Update erneut versucht:
$ sudo pacman -Syu
Fest!! Alles gut jetzt. Wenn Sie also jemals auf ein Problem stoßen, so etwas wie „Fehler beim Laden von gemeinsam genutzten Bibliotheken:.. kann gemeinsam genutzte Objektdatei nicht öffnen:Keine solche Datei oder kein solches Verzeichnis“ , besteht eine Möglichkeit, dies zu beheben, darin, das Paket zu finden, das die fehlenden Dateien enthält, die neueste Version dieses Pakets herunterzuladen, es zu extrahieren und die fehlenden Dateien nach /usr/lib/ zu kopieren Verzeichnis. Natürlich gibt es viele Möglichkeiten, solche Probleme zu beheben. Aber dies ist die einzige funktionierende Lösung, die ich finden konnte, und ich finde das viel einfacher und schneller. Dieser Trick könnte auch auf anderen Linux-Distributionen funktionieren.
Verwandte Lektüre:
- So stellen Sie defektes Arch-Linux in den vorherigen Betriebszustand zurück
- So beheben Sie den Fehler „Datenbank kann nicht gesperrt werden“ in Arch Linux
- So beheben Sie den Fehler „ungültiges oder beschädigtes Paket (PGP-Signatur)“ in Arch Linux
- So lösen Sie das Problem „Vollständiges System-Upgrade starten … es gibt nichts zu tun“ in Arch Linux
- So lösen Sie „Fehler:Transaktion konnte nicht ausgeführt werden (widersprüchliche Dateien)“ in Arch Linux