Nach dem Update mit pacman -Syuq
:
# pacman -Sc
pacman: error while loading shared libraries: libicuuc.so.59: cannot open shared object file: No such file or directory
# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60
Arch Linux in einem Pi Version 1:
# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
Antwort1
Zuvor vorgeschlagene Lösungen waren für mich nicht relevant oder funktionierten nicht. Aus irgendeinem Grund icu
führte das Upgrade des Pakets von 59.1-2 auf 60.1-1 zu einem Verbindungsabbruch und viele Programme (einschließlich Pacman) schlugen danach mit diesem Fehler fehl. Auf meiner Seite gab es kein unterbrochenes Pacman.
Wenn Sie das vorherige Paket noch in Ihrem Cache haben, können Sie Folgendes versuchen, das hat bei mir funktioniert:
- Suchen Sie nach der zwischengespeicherten Version des Pakets (meine war beispielsweise
/var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz
). - Extrahieren Sie es:
mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
- Kopieren Sie Bibliotheken in Ihren Bibliotheksordner:
sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
- Mit dem Update fortfahren:
sudo pacman -Syu
- Sie können jetzt die gerade extrahierten Dateien entfernen.
Antwort2
Sie können auch die Variable LD_LIBRARY_PATH verwenden, um die ICU-Bibliotheken von einem anderen Ort zu laden. Auf diese Weise können Sie Kopien nach /usr/lib vermeiden:
$ mkdir -p ~/pkg/tmp
$ tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
$ su
# LD_LIBRARY_PATH=`pwd`/pkg/tmp pacman -U /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz
Antwort3
Falls Sie eine ausführbare Datei haben, die diese bestimmte Version der Bibliothek benötigt (wie es in meinem Fall der Fall war), gibt es eineaur-Paketfür diese bestimmte Version.
Antwort4
Das Problem wurde mit „Pacman -Sc“ und anschließend mit „Pacman -Syyu“ gelöst. Ich bin nicht sicher, warum das das Problem gelöst hat.