GNU/Linux >> Tutoriels Linux >  >> Cent OS

Rpm :erreur lors du chargement des bibliothèques partagées :Libz.so.1 :impossible d'ouvrir le fichier d'objet partagé :aucun fichier de ce type

Le problème

Lors de l'exécution de la commande rpm, l'erreur suivante s'affiche :

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

Les bibliothèques de fragments zlib sont manquantes :

# 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 

La solution

Le zlib était cassé, normalement zlib contient les fichiers suivants.

Sur la plate-forme 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

Sur plate-forme 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 

Alors que zlib est cassé, la commande rpm est également cassée. Nous ne pouvons donc pas simplement utiliser la commande rpm ou yum pour réinstaller le zlib. Voici ce que vous pouvez faire :

1. Sur un autre serveur CentOS/RHEL, extrayez les bibliothèques de partage zlib d'un rpm avec la même version (par exemple, zlib-1.2.3-27.el6 ici).

2. Décompressez le rpm :

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

3. Remplacez [arch] par x86_64 ou i686 selon l'architecture de votre serveur :

# 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. Déplacez lib.so.1.2.3 et lib.so.1 vers l'emplacement correct :

Sur la plate-forme x86_64 :

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

Sur plate-forme x86 :

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

5. Reconstruisez le cache de la bibliothèque :

# ldconfig

Maintenant, la commande rpm devrait s'exécuter normalement.

6. Si vous le souhaitez, réinstallez zlib pour résoudre d'autres problèmes possibles :

# yum reinstall zlib

Remarques

Un problème similaire peut se produire pour d'autres packages comme ceux mentionnés ci-dessous :

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

Pour résoudre ce problème, recherchez quel package fournit le fichier manquant :

# 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

Réinstallez le package ou copiez le fichier manquant en extrayant le rpm.


Cent OS
  1. Comment résoudre l'erreur "impossible d'ouvrir le fichier objet partagé" dans les distributions Linux basées sur Ubuntu

  2. Faire une erreur lors de l'installation de LiME sur CentOS - lib/modules/kernel_version/build :aucun fichier ou répertoire de ce type [Résolu]

  3. "Erreur lors du chargement des bibliothèques partagées :libjli.so :impossible d'ouvrir le fichier d'objet partagé :aucun fichier ou répertoire de ce type" Erreur "java -version" au démarrage

  4. libaio.so.1 :impossible d'ouvrir le fichier objet partagé

  5. Erreur lors du chargement de la bibliothèque partagée (glew)

Comment réparer l'erreur "pacman:erreur lors du chargement des bibliothèques partagées" dans Arch Linux

Erreur Linux lors du chargement des bibliothèques partagées :impossible d'ouvrir le fichier objet partagé :aucun fichier ou répertoire de ce type

libstdc++.so.5 :impossible d'ouvrir le fichier objet partagé - mais la bibliothèque est installée et à jour

erreur lors du chargement des bibliothèques partagées :libncurses.so.5 :

ERREUR :ld.so :l'objet LD_PRELOAD ne peut pas être préchargé :ignoré

conda.exe :erreur lors du chargement des bibliothèques partagées :libz.so.1