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


11

で更新した後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

ここに同じ問題が、今日現れました。私にとってはlibicuuc.so.59です。起動するにはコマンドラインを使用する必要があり、多くのプログラムが動作しなくなった
zakrapovic '28

libicui18n.so.59も欠落している可能性があります
zakrapovic

私は実際にpacman -Scに続いてpacman -Syuu
zakrapovicで

回答:


20

以前に提案された解決策は関連性がないか、私にとってはうまくいきませんでした。何らかの理由で、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. 抽出したファイルを削除できます。

2
ありがとう、これでうまくいきました。しかし、コピーしたlibicu * .59ファイルを安全に削除するにはどうすればよいですか?rm /usr/lib/libicu*.59
Skatox 2017

これも私にとってはうまくいきました。ありがとう、賛成投票してください。
Vaughan Hilts、

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

それはLD_LIBRARY_PATH=`pwd`/pkg/tmp/usr/lib私の場合でした。
v_2e 2018

1

私は問題を調査し、について見つけました/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

更新が中断されたため、リンケージの問題が発生しました。

次に、ここからファームウェアをダウンロードしました。不足しているライブラリを抽出しました:

$ 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 -Syuqldd /usr/bin/pacmanて、すべてのライブラリが存在することを確認しました。私はv59ライブラリをから移動し、/usr/libそれpacmanが機能していることを確認しました。

指を交差させて再起動します...成功しました!!!

pacman -Sc そして笑顔で寝る:)




0

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

sudo pacman -S lib32-icu

0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.