web-dev-qa-db-ja.com

共有ライブラリのロード中にエラーが発生しました:libicuuc.so.59:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

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
11

以前に提案された解決策は関連性がないか、私にとってはうまくいきませんでした。何らかの理由で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. Libsをlibフォルダーにコピーします:Sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. 更新を続行:Sudo pacman -Syyu
  5. 抽出したファイルを削除できます。
20
Legogris

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
2
jviki

私は問題を調査し、/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.59libicuuc.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そして笑顔で寝る:)

1

特定のバージョンのライブラリを必要とする実行可能ファイルがある場合(私の場合はそうでした)、その特定のバージョン用の aurパッケージ があります。

1
ivcha

システムにlib32-icuがインストールされていません。 pacmanからlib32-icuをインストールするだけで、すべての問題が解決されます。

Sudo pacman -S lib32-icu
0
Amar Hunter

Pacman -Scに続けてpacman -Syyuを使用して問題を解決したなぜ問題が解決したのかわかりません。

0

次のリンクを使用して、この問題を解決しました。 ここ

この記事によると、ダウングレードは悪い考えであり、おそらくあなたがすべきことは、上記の欠けている依存関係を使用するパッケージを再構築することです。ダウングレードは複数のパッケージに影響を与える可能性があります。

0
Kevin RED