載入共享庫時發生錯誤:libicuuc.so.59:無法開啟共享物件檔案:沒有這樣的檔案或目錄

載入共享庫時發生錯誤:libicuuc.so.59:無法開啟共享物件檔案:沒有這樣的檔案或目錄

更新後pacman -Syuq

# pacman -Sc

pacman: error while loading shared libraries: libicuuc.so.59: cannot open shared object file: No such file or directory

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

Pi 版本 1 中的 Arch Linux:

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

答案1

以前提出的解決方案與我無關或不起作用。由於某種原因,將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. 將庫複製到您的 lib 資料夾:sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. 繼續更新:sudo pacman -Syu
  5. 現在您可以刪除剛剛提取的檔案。

答案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

答案3

如果您有一個可執行檔需要該特定版本的程式庫(就像我的情況一樣),那麼有一個奧爾包對於該特定版本。

答案4

使用 pacman -Sc 解決了問題,然後使用 pacman -Syyu 不知道為什麼它解決了問題。

相關內容