共有ライブラリの読み込みエラー: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にアップグレードすると、リンクが失われ、多くのプログラム(パックマンを含む)がこのエラーによって失敗しました。私はここでパックマンを邪魔しませんでした。

キャッシュに古いパッケージがまだ残っている場合は、次のことを試すことができます。この方法は私にとって効果的でした。

  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を使用すると問題が解決した理由がわかりません。

関連情報