Ошибка при загрузке общих библиотек: libicuuc.so.59: невозможно открыть общий объектный файл: нет такого файла или каталога


11

После обновления с помощью pacman -Syuq:

# pacman -Sc

pacman: ошибка при загрузке общих библиотек: libicuuc.so.59: не удается открыть общий объектный файл: нет такого файла или каталога

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

Arch Linux в версии Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux

Та же проблема здесь, появилась сегодня. Для меня libicuuc.so.59. Я должен пройти через командную строку для загрузки, и многие программы больше не работают
zakrapovic

Также отсутствует libicui18n.so.59, вероятно, связанный
zakrapovic

Я действительно решил свою проблему с pacman -Sc, а затем с pacman -Syuu
zakrapovic

Ответы:


20

Предложенные ранее решения не были актуальны или не работали для меня. По какой-то причине обновление icuпакета с 59.1-2 до 60.1-1 привело к разрыву связи, и многие программы (включая pacman) потерпели неудачу с этой ошибкой после. Никакой прерванный пакман на моей стороне.

Если у вас все еще есть предыдущий пакет в вашем кэше, вы можете попробовать это, который работал для меня:

  1. Найдите кэшированную версию пакета (например, моя была /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz).
  2. Извлеките это: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Скопируйте libs в вашу папку lib: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Продолжить обновление: sudo pacman -Syyu
  5. Теперь вы можете удалить только что извлеченные файлы.

2
Спасибо, это сработало для меня. Но как мне безопасно удалить скопированные файлы libicu * .59? rm /usr/lib/libicu*.59?
Skatox

Это сработало и для меня. Спасибо, есть голос.
Вон Хилтс

2

Вы также можете использовать переменную LD_LIBRARY_PATH для загрузки библиотек icu из другого места. Таким образом, вы можете избежать любых копий в / 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

Это было LD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/libв моем случае.
v_2e

1

Я исследовал проблему и нашел о /var/log/pacman.log. Я прочитал журнал и обнаружил, что проблема была:

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

Обновление было прервано, поэтому возникла проблема с подключением.

Я тогда скачал прошивку отсюда . Я извлек недостающую библиотеку:

$ 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.59была символическая ссылка на libicuuc.so.59.1, поэтому я перешел libicuuc.so.59.1на /usr/lib/libicuuc.so.59.

Запуск pacmanя получил ошибку, которая libicudata.so.59отсутствовала. Я извлек недостающую библиотеку /usr/libи pacmanработал :).

Затем я обновил систему pacman -Syuqи проверил ldd /usr/bin/pacmanналичие всех библиотек. Я переместил библиотеки v59 /usr/libи проверил, что pacmanэто работает.

Перезагрузка со скрещенными пальцами ... успешно !!!

pacman -Sc и ложиться спать с улыбкой :)


1

Если у вас есть исполняемый файл, которому нужна конкретная версия библиотеки (как это было в моем случае), для этой конкретной версии есть пакет aur .


0

Решил проблему с pacman -Sc с последующим pacman -Syyu Не уверен, почему это решило проблему.


0

В вашей системе не установлена ​​lib32-icu. Просто установите lib32-icu из pacman, и все проблемы будут решены.

sudo pacman -S lib32-icu

0

Я решил эту проблему с помощью следующей ссылки; Вот

Согласно этой статье, понижение версии является плохой идеей, и вам, вероятно, следует пересобрать пакет, в котором используется вышеуказанная недостающая зависимость. Понижение может повлиять на несколько пакетов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.