拋物線(類似拱形)- 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。)

相關內容