Błąd podczas ładowania bibliotek współdzielonych: libicuuc.so.59: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu

11

Po aktualizacji za pomocą pacman -Syuq:

# pacman -Sc

pacman: błąd podczas ładowania bibliotek współdzielonych: libicuuc.so.59: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60

Arch Linux w wersji Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
sfrustrowany Martian
źródło
Ten sam problem pojawił się dzisiaj. Dla mnie libicuuc.so.59. Muszę przejść przez wiersz poleceń, aby uruchomić i wiele programów już nie działa
zakrapovic
Brakuje również libicui18n.so.59, prawdopodobnie związane
zakrapovic
Naprawdę rozwiązałem mój problem z pacman -Sc, a następnie pacman -Syuu
zakrapovic

Odpowiedzi:

20

Wcześniej zaproponowane rozwiązania nie były dla mnie istotne lub nie działały. Z jakiegoś powodu uaktualnienie icupakietu z 59.1-2 do 60.1-1 spowodowało przerwanie łączenia i wiele programów (w tym pacman) nie powiodło się z tym błędem. Po mojej stronie nie ma przerwanego Pacmana.

Jeśli nadal masz poprzednią paczkę w pamięci podręcznej, możesz wypróbować to, co zadziałało dla mnie:

  1. Znajdź wersję pakietu z pamięci podręcznej (na przykład moja była /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Wyodrębnij to: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Skopiuj biblioteki lib do folderu lib: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Kontynuuj aktualizację: sudo pacman -Syyu
  5. Możesz teraz usunąć właśnie wyodrębnione pliki.
Legogris
źródło
2
Dzięki, to zadziałało dla mnie. Ale jak bezpiecznie usunąć skopiowane pliki libicu * .59? rm /usr/lib/libicu*.59?
Skatox,
To również działało dla mnie. Dzięki, wyrażaj opinię.
Vaughan Hilts
2

Możesz także użyć zmiennej LD_LIBRARY_PATH, aby załadować biblioteki icu z innej lokalizacji. W ten sposób możesz uniknąć kopiowania do / usr / lib:

$ 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
jviki
źródło
Tak było LD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/libw moim przypadku.
v_2e
1

Zbadałem problem i znalazłem informacje na temat /var/log/pacman.log. Przeczytałem dziennik i stwierdziłem, że problem:

...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted

Aktualizacja została przerwana, stąd problem z połączeniem.

Następnie pobrałem oprogramowanie wewnętrzne z tego miejsca . Wyodrębniłem brakującą bibliotekę:

$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59

libicuuc.so.59był dowiązaniem symbolicznym do libicuuc.so.59.1, więc przeprowadziłem się libicuuc.so.59.1do /usr/lib/libicuuc.so.59.

Podczas pracy pacmandostałem libicudata.so.59brakujący błąd . Rozpakowałem brakującą bibliotekę /usr/libi pacmandziałałem :).

Następnie zaktualizowałem system pacman -Syuqi sprawdziłem, ldd /usr/bin/pacmanczy wszystkie biblioteki są obecne. Przeniosłem biblioteki v59 /usr/libi sprawdziłem, czy pacmandziała.

Uruchom ponownie z kciukami ... pomyślnie !!!

pacman -Sc i idź do łóżka z uśmiechem :)

sfrustrowany Martian
źródło
1

Jeśli masz plik wykonywalny, który potrzebuje tej konkretnej wersji biblioteki (tak jak miało to miejsce w moim przypadku), istnieje pakiet aur dla tej konkretnej wersji.

ivcha
źródło
0

Rozwiązano problem z pacman -Sc, a następnie pacman -Syyu Nie wiem, dlaczego to rozwiązało problem.

alainsanguinetti
źródło
0

W twoim systemie lib32-icu nie jest zainstalowany. Wystarczy zainstalować lib32-icu z Pacman, a wszystkie problemy zostaną rozwiązane.

sudo pacman -S lib32-icu
Amar Hunter
źródło
0

Rozwiązałem ten problem za pomocą następującego linku; tutaj

Zgodnie z tym artykułem obniżenie wersji jest złym pomysłem i prawdopodobnie powinieneś przebudować pakiet, który wykorzystuje powyższą brakującą zależność. Obniżenie wersji może wpłynąć na wiele pakietów.

Kevin RED
źródło