pacman -Syuq
で更新した後:
#pacman -Sc
pacman:共有ライブラリの読み込み中にエラーが発生しました:libicuuc.so.59:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
# 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
以前に提案された解決策は関連性がないか、私にとってはうまくいきませんでした。何らかの理由でicu
パッケージを59.1-2から60.1-1にアップグレードすると、リンケージが壊れ、多くのプログラム(pacmanを含む)がこのエラーで失敗しました。私の側で中断されたパックマンはありません。
キャッシュに以前のパッケージが残っている場合は、これを試すことができます。
/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
Sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
Sudo pacman -Syyu
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
私は問題を調査し、/var/log/pacman.log
について見つけました。ログを読んだところ、問題は次のとおりであることがわかりました。
...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted
更新が中断されたため、リンケージの問題が発生しました。
次に、ファームウェアを here からダウンロードしました。不足しているライブラリを抽出しました:
$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59
libicuuc.so.59
はlibicuuc.so.59.1
へのシンボリックリンクだったので、libicuuc.so.59.1
を/usr/lib/libicuuc.so.59
に移動しました。
pacman
を実行すると、libicudata.so.59
がないというエラーが発生しました。不足しているライブラリを/usr/lib
に抽出し、pacman
が機能していました:)。
次に、pacman -Syuq
でシステムを更新し、ldd /usr/bin/pacman
ですべてのライブラリが存在することを確認しました。 v59ライブラリを/usr/lib
から移動し、pacman
が機能していることを確認しました。
指を交差させて再起動します...成功しました!!!
pacman -Sc
そして笑顔で寝る:)
特定のバージョンのライブラリを必要とする実行可能ファイルがある場合(私の場合はそうでした)、その特定のバージョン用の aurパッケージ があります。
システムにlib32-icuがインストールされていません。 pacmanからlib32-icuをインストールするだけで、すべての問題が解決されます。
Sudo pacman -S lib32-icu
Pacman -Scに続けてpacman -Syyuを使用して問題を解決したなぜ問題が解決したのかわかりません。
次のリンクを使用して、この問題を解決しました。 ここ
この記事によると、ダウングレードは悪い考えであり、おそらくあなたがすべきことは、上記の欠けている依存関係を使用するパッケージを再構築することです。ダウングレードは複数のパッケージに影響を与える可能性があります。