更新済み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にアップグレードすると、リンクが失われ、多くのプログラム(パックマンを含む)がこのエラーによって失敗しました。私はここでパックマンを邪魔しませんでした。
キャッシュに古いパッケージがまだ残っている場合は、次のことを試すことができます。この方法は私にとって効果的でした。
- パッケージのキャッシュされたバージョンを探します(たとえば、鉱山は
/var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz
)。 - 抽出:
mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
- ライブラリをlibフォルダにコピーします。
sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
- 更新を続けます。
sudo pacman -Syu
- これで、抽出したファイルを削除できます。
答え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を使用すると問題が解決した理由がわかりません。