加载共享库时出错: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

Pi版本的Arch Linux:

# 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

Answers:


20

先前提出的解决方案不相关或对我不起作用。由于某种原因,将icu程序包从59.1-2 升级到60.1-1导致链接中断,许多程序(包括pacman)失败,并出现此错误。我身边没有打扰的吃豆人。

如果您的缓存中仍然有以前的软件包,可以尝试一下,这对我有用:

  1. 找到软件包的缓存版本(例如,mine was /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. 将lib复制到您的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 '18

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/libpacman正在工作:)。

然后,我使用更新了系统pacman -Syuq并检查ldd /usr/bin/pacman是否存在所有库。我从中移走了v59库,/usr/lib并检查它pacman是否正常工作。

用手指交叉重新启动...成功!!!!

pacman -Sc 带着微笑上床睡觉:)


1

如果您有一个需要该库特定版本的可执行文件(如本例中所述),则有一个针对该特定版本的aur软件包



0

您的系统中未安装lib32-icu。只需从pacman安装lib32-icu即可解决所有问题。

sudo pacman -S lib32-icu

0

我通过以下链接解决了这个问题; 这里

根据这篇文章,降级是一个坏主意,您可能应该做的是使用上述缺少的依赖关系来重建软件包。降级可能会影响多个软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.