GNU/Linux >> Linux の 問題 >  >> Cent OS

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

問題

rpm コマンドを実行すると、次のエラーが表示されます:

rpm: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file

zlib シャード ライブラリがありません:

# ls -l /lib64/libz.so*
ls: /lib64/libz.so*: No such file or directory
# ls -l /lib/libz.so*
ls: /lib/libz.so*: No such file or directory 

解決策

zlib が壊れています。通常、zlib には次のファイルが含まれています。

x86_64 プラットフォーム:

# rpm -ql zlib-1.2.3-27.el6.x86_64
/lib64/libz.so.1
/lib64/libz.so.1.2.3
/usr/share/doc/zlib-1.2.3
/usr/share/doc/zlib-1.2.3/ChangeLog
/usr/share/doc/zlib-1.2.3/FAQ
/usr/share/doc/zlib-1.2.3/README

x86 プラットフォームの場合:

# rpm -ql zlib-1.2.3-27.el6.i686
/lib/libz.so.1
/lib/libz.so.1.2.3
/usr/share/doc/zlib-1.2.3
/usr/share/doc/zlib-1.2.3/ChangeLog
/usr/share/doc/zlib-1.2.3/FAQ
/usr/share/doc/zlib-1.2.3/README 

zlib が壊れている間、rpm コマンドも壊れています。したがって、単純に rpm または yum コマンドを使用して zlib を再インストールすることはできません。ここでできること:

1. 別の CentOS/RHEL サーバーで、同じバージョンの rpm から zlib 共有ライブラリを抽出します (例:ここでは zlib-1.2.3-27.el6)。

2. rpm を解凍します。

# rpm2cpio zlib-1.2.3-27.el6.[arch].rpm | cpio -idvm

3. サーバー アーキテクチャに応じて、[arch] を x86_64 または i686 に置き換えます。

# rpm2cpio zlib-1.2.3-27.el6.x86_64.rpm | cpio -idvm
./lib64/libz.so.1
./lib64/libz.so.1.2.3
./usr/share/doc/zlib-1.2.3
./usr/share/doc/zlib-1.2.3/ChangeLog
./usr/share/doc/zlib-1.2.3/FAQ
./usr/share/doc/zlib-1.2.3/README
300 blocks

4. lib.so.1.2.3 と lib.so.1 を正しい場所に移動します:

x86_64 プラットフォーム:

# mv ./lib64/libz.so.* /lib64

x86 プラットフォーム:

# mv ./lib/libz.so.* /lib

5. ライブラリ キャッシュを再構築します。

# ldconfig

これで、rpm コマンドが通常どおり実行されるはずです。

6. 必要に応じて、zlib を再インストールして、考えられるその他の問題を修正します。

# yum reinstall zlib

メモ

以下のような他のパッケージでも同様の問題が発生する可能性があります:

rpm: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory

これを解決するには、不足しているファイルを提供するパッケージを見つけます:

# yum provides */libdb*
Loaded plugins: security, ulninfo
db4-4.7.25-19.el6_6.i686 : The Berkeley DB database library (version 4) for C
Repo : ol6_latest_local
Matched from:
Filename : /usr/lib/libdb-4.7.so
Filename : /lib/libdb-4.7.so

パッケージを再インストールするか、不足しているファイルをコピーして rpm を抽出してください。


Cent OS
  1. UbuntuベースのLinuxディストリビューションで「共有オブジェクトファイルを開けない」エラーを解決する方法

  2. 共有ライブラリのロード中にPythonインストールエラーを修正する方法:libssl.so.1.0.0? [解決済み]

  3. 共有ライブラリの読み込み中にエラーが発生しました:libncurses.so.5:

  1. エラー:ld.so:オブジェクト LD_PRELOAD をプリロードできません:無視されました

  2. 共有ライブラリの読み込みエラー (glew)

  3. ImportError:libcblas.so.3:共有オブジェクト ファイルを開けません:そのようなファイルまたはディレクトリはありません

  1. CentOSへのLiMEのインストール中にエラーが発生する– lib / modules / kernel_version / build:そのようなファイルまたはディレクトリはありません[解決済み]

  2. 共有ライブラリの読み込み中にエラーが発生しましたlibcrypto.so.1.1–OpenSSL[修正]

  3. docker compose:共有ライブラリの読み込み中にエラーが発生しました:libz.so.1:共有オブジェクトからセグメントをマップできませんでした:操作は許可されていません