GNU/Linux >> Znalost Linux >  >> Cent OS

Rpm:Chyba při načítání sdílených knihoven:Libz.so.1:Nelze otevřít soubor sdíleného objektu:Žádný takový soubor

Problém

Při provádění příkazu rpm se zobrazí následující chyba:

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

Chybí knihovny fragmentů 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 

Řešení

Zlib byl poškozen, zlib normálně obsahuje následující soubory.

Na platformě 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

Na platformě 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 

Zatímco je zlib přerušen, je přerušen i příkaz rpm. Nemůžeme tedy jednoduše použít příkaz rpm nebo yum k přeinstalaci zlib. Co můžete udělat zde:

1. Na jiném serveru CentOS/RHEL extrahujte sdílené knihovny zlib z rpm se stejnou verzí (např. zde zlib-1.2.3-27.el6).

2. Dekomprimujte otáčky:

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

3. Nahraďte [arch] x86_64 nebo i686 v závislosti na architektuře vašeho serveru:

# 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. Přesuňte soubory lib.so.1.2.3 a lib.so.1 do správného umístění:

Na platformě x86_64:

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

Na platformě x86:

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

5. Znovu vytvořte mezipaměť knihovny:

# ldconfig

Nyní by měl příkaz rpm běžet jako obvykle.

6. Případně přeinstalujte zlib, abyste opravili další možné problémy:

# yum reinstall zlib

Poznámky

Podobný problém může nastat u dalších balíčků, jak je uvedeno níže:

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

Chcete-li tento problém vyřešit, zjistěte, který balíček obsahuje chybějící soubor:

# 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

Znovu nainstalujte balíček nebo zkopírujte chybějící soubor a extrahujte rpm.


Cent OS
  1. Udělat chybu při instalaci LiME na CentOS – lib/modules/kernel_version/build:Žádný takový soubor nebo adresář [Vyřešeno]

  2. Jak opravit chybu instalace Pythonu při načítání sdílených knihoven:libssl.so.1.0.0? [vyřešeno]

  3. libstdc++.so.5:nelze otevřít soubor sdíleného objektu - ale knihovna je nainstalovaná a aktuální

  1. chyba při načítání sdílených knihoven:libncurses.so.5:

  2. CHYBA:ld.so:objekt LD_PRELOAD nelze předem načíst:ignorováno

  3. ImportError:libcblas.so.3:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář

  1. Jak vyřešit chybu „nelze otevřít soubor sdíleného objektu“ v distribucích Linuxu založených na Ubuntu

  2. Chyba při načítání sdílených knihoven libcrypto.so.1.1 – OpenSSL [Oprava]

  3. Jak opravit „chybu při načítání sdílených knihoven:libgtk-x11-2.0.so.0“