抛物线(类似拱形)- ICU 更新导致某些程序需要两个不同版本的 ICU 库。两者均无法启动。无法重现

抛物线(类似拱形)- ICU 更新导致某些程序需要两个不同版本的 ICU 库。两者均无法启动。无法重现

我跑抛物线(Arch Linux 的衍生版本,将非自由软件列入黑名单,并添加了许多其他软件)。最近 ICU 软件包从 v.59 更新到 v.60(ICU 软件包直接来自 Arch 的存储库,而不是来自 Parabola)。因此,Parabola 自己的存储库中的许多软件包需要针对新版本的 ICU 进行重建,包括 Ring-client-gnome 和 california。

我已经确认,在新的虚拟机上,“gnome-ring”和“california”都可以正常运行。 IRC 上的其他用户也报告了同样的情况。

然而,在我的个人机器上,“gnome-ring”和“california”都无法启动。除了不幸已损坏的旧虚拟机之外,我无法复制此问题。

奇怪的是,尽管 Ring-client-gnome 是为 ICU v60 构建的,但我似乎想要 v59 和 v60。例如,如果卸载 ICU,gnome-ring 将输出无法按预期找到“libicui18n.so.60”。但如果你安装了 ICU,它会输出找不到“libicui18n.so.59”。这没有任何意义,因为安装两个不同的 ICU 版本而不发生冲突是不可能的,所以我的安装似乎有问题。

有趣的是,无论你是否安装了 ICU,“california”总是会输出找不到“libicui18n.so.59”,尽管它是为 ICU v60 构建的。

安装了最新的 ICU 软件包 (60.1-1):

[user@hostname ~]$ gnome-ring
gnome-ring: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

[user@hostname ~]$ california
california: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

没有安装 ICU 软件包(加利福尼亚的那个是不是拼写错误):

[user@hostname ~]$ gnome-ring
gnome-ring: error while loading shared libraries: libicui18n.so.60: cannot open shared object file: No such file or directory

[user@hostname ~]$ california
california: error while loading shared libraries: libicui18n.so.59: cannot open shared object file: No such file or directory

一些更有用的输出:

[user@hostname ~]$ ldd /usr/lib/libring.so /usr/lib/libring.so.0 /usr/lib/libring.so.0.0.0 /usr/lib/ring/dring /usr/bin/gnome-ring /usr/bin/ring.cx | grep icu

    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000604eec817000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000604ee9dca000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x000069782c24c000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00006978297ff000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x00006ea1e4d8a000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x00006ea1e233d000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000686de13da000)
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000686dde98d000)
    libicui18n.so.60 => /usr/lib/libicui18n.so.60 (0x0000603da97c4000)
    libicuuc.so.60 => /usr/lib/libicuuc.so.60 (0x0000603da940b000)
    libicui18n.so.59 => not found
    libicuuc.so.59 => not found
    libharfbuzz-icu.so.0 => /usr/lib/libharfbuzz-icu.so.0 (0x0000603da49ee000)
    libicuuc.so.59 => not found
    libicui18n.so.59 => not found
    libicudata.so.60 => /usr/lib/libicudata.so.60 (0x0000603d9f05a000)
    libicuuc.so.59 => not found
    libicui18n.so.59 => not found
    libicuuc.so.59 => not found

重症监护室版本:

[user@hostname ~]$ sudo pacman -Q icu
icu 60.1-1

/usr/lib/icu 的内容:

[user@hostname icu]$ ls -l
total 12
drwxr-xr-x 1 root root 46 Nov 22 14:16 60.1
lrwxrwxrwx 1 root root  4 Nov 12 09:33 current -> 60.1
lrwxrwxrwx 1 root root 20 Nov 12 09:33 Makefile.inc -> current/Makefile.inc
lrwxrwxrwx 1 root root 19 Nov 12 09:33 pkgdata.inc -> current/pkgdata.inc

/lib/libicu 的内容

[alex@LibrebootT400 lib]$ ls -la libicu*
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicudata.so -> libicudata.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicudata.so.60 -> libicudata.so.60.1
-rwxr-xr-x 1 root root 26825368 Nov 12 09:33 libicudata.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicui18n.so -> libicui18n.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicui18n.so.60 -> libicui18n.so.60.1
-rwxr-xr-x 1 root root  2762816 Nov 12 09:33 libicui18n.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuio.so -> libicuio.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuio.so.60 -> libicuio.so.60.1
-rwxr-xr-x 1 root root    55056 Nov 12 09:33 libicuio.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicutest.so -> libicutest.so.60.1
lrwxrwxrwx 1 root root       18 Nov 12 09:33 libicutest.so.60 -> libicutest.so.60.1
-rwxr-xr-x 1 root root    64616 Nov 12 09:33 libicutest.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicutu.so -> libicutu.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicutu.so.60 -> libicutu.so.60.1
-rwxr-xr-x 1 root root   203288 Nov 12 09:33 libicutu.so.60.1
lrwxrwxrwx 1 root root       16 Nov 12 09:33 libicuuc.so -> libicuuc.so.60.1
lrwxrwxrwx 2 root root       16 Nov 12 09:33 libicuuc.so.59 -> libicuuc.so.60.1
lrwxrwxrwx 2 root root       16 Nov 12 09:33 libicuuc.so.60 -> libicuuc.so.60.1
-rwxr-xr-x 1 root root  1799952 Nov 12 09:33 libicuuc.so.60.1

答案1

Parabola 有一个特殊的存储库,名为“无棱镜“其中包含许多强化的软件包,通常可以增强隐私。我忘记了我不久前已启用它进行测试。

禁用此存储库修复了 gnome-ring 和 california,这表明其中之一无棱镜包裹破损。设法将其范围缩小到一个损坏的依赖关系,这表明进化数据服务器是罪魁祸首。果然有非棱镜/进化数据服务器这是正常包后面的两个版本。

非棱镜/进化数据服务器现在正在重建队列中。如果这解决了问题,我会将这个问题标记为已解决。

答案2

这对我有用:

sudo ln /usr/lib/libicuuc.so.60 /usr/lib/libicuuc.so.59

(假设您的系统运行在 ICU v60 上。如果您使用的是 v59,则可能可以将 59 符号链接到 60。)

相关内容