web-dev-qa-db-fra.com

erreur lors du chargement des bibliothèques partagées: libcrypto.so.1.1

Lorsque j'exécute "openssl", j'obtiens une erreur comme ci-dessous:

openssl: erreur lors du chargement des bibliothèques partagées: libcrypto.so.1.1: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type "

Cela s'est produit après avoir tenté de mettre à jour OpenSSL en fonction de cela article

Est-ce qu'il y a un moyen de réparer ceci?

Système d'exploitation: serveur Web CentOS 6.8: nginx/1.10.2

Mise à jour # 1:

[root@Host ~]# yum info openssl
Installed Packages
Name        : openssl
Arch        : x86_64
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 4.0 M
Repo        : installed
From repo   : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 1.5 M
Repo        : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.
13
mayasl

J'avais le même problème après l'installation de la dernière version de openssl 1.1.0c, j'ai résolu le problème de copie des fichiers de bibliothèque libcrypto.so.1.1, libcrypto.a et libssl.so de /usr/local/lib64 à la bibliothèque de partage à /usr/lib64.
Après avoir copié les bibliothèques, vous devez créer le lien symbolique.

ln -s libcrypto.so.1.1 libcrypto.so
ln -s libssl.so.1.1 libssl.so

Après avoir créé le lien symbolique reconstruction du cache ldconfig était également requis:

Sudo ldconfig
20
Benedict

Avec votre version originale d'OpenSSL, il savait comment trouver les bibliothèques partagées car /usr/lib64 est inclus dans le chemin de recherche de l'éditeur de liens. Lorsque vous avez téléchargé et compilé une copie "locale" d'OpenSSL, les bibliothèques partagées ont été placées dans /usr/local/lib64 par défaut. Il vous suffit donc probablement d'ajouter ce répertoire au chemin de recherche de l'éditeur de liens, comme ceci (en tant que root):

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf

puis exécutez:

ldconfig

Je crois que cela résoudra votre problème.

9
doug.fsu

J'ai eu cette erreur en utilisant Termux sur ChromeOS, ce qui a provoqué le plantage des programmes de ligne de commande npm et node.

Fonctionnement pkg upgrade a résolu le problème!

3
Carl Walsh

Ce que @benedict a dit a fonctionné pour moi. Cependant, vous pouvez constater que certains des liens symboliques pointent vers des versions plus anciennes. Fonctionnement ls -l libcrypto* à partir de/usr/libs vous montrera les liens. Comme dans l'exemple ci-dessous:

lrwxrwxrwx 1 root root      16 May 21 15:28 libcrypto.so -> libcrypto.so.1.0

Ensuite, vous souhaitez d'abord supprimer le lien existant en tapant Sudo rm libcrypto.so puis en copiant libcrypto.so.1.1 comme @benedict l'a mentionné. Enfin, vous pouvez créer le nouveau lien. Sudo ln -s libcrypto.so.1.1 libcrypto.so

J'espère que cela t'aides.

1
Ihsan Izwer

Vous pouvez le réinstaller en utilisant

yum install -y openssl-devel

1
mzhaase

Le libcrypto.so appartient à openssl-libs paquet. Si vous forcez la suppression manuellement (avec --nodeps) ce paquet ou corrompu en le mettant à jour, vous perdrez l'accès à yum, wget, curl, ssh, etc. Si le système a accès à Internet, téléchargez le openssl-libs en utilisant la commande /usr/bin/GET. La syntaxe ressemblerait à celle ci-dessous si vous essayez de restaurer la version openssl-libs-1.0.2k-8.el7.x86_64:

/usr/bin/GET http://downloadURL/openssl-libs-1.0.2k-8.el7.x86_64.rpm > openssl-libs-1.0.2k-8.el7.x86_64.rpm

Cela va créer openssl-libs-1.0.2k-8.el7.x86_64.rpm package pour vous, vous pouvez l'utiliser pour réinstaller ou extraire le .so fichier.

1
Karthik

Sur CentOS 7 libssl.so.1.1 Réside dans /usr/local/ssl/lib.

J'ai donc juste dû ajouter ce chemin aux emplacements par défaut, où le chargeur dynamique recherche les bibliothèques. J'ai créé un fichier séparé pour mon binaire openssl, nommé openssl-1.1.1c.conf, dans /etc/ld.so.conf.d dossier:

echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf

Maintenant ça marche.

0
Boris Burkov

Je suis passé par le même problème exactement ... Je l'ai résolu en exécutant les commandes suivantes.

ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

Cela créera un lien logiciel et vous êtes prêt à partir.

0
Faheem

C'est la meilleure solution que j'ai trouvée ... d'autres solutions fournies partout sur Internet, ne survivront pas au redémarrage du système;)

Système d'exploitation: Ubuntu 16.04

Sudo vim /etc/ld.so.conf.d/libc.conf

Commenter les paramètres du répertoire lib et ajouter un bon chemin

# libc default configuration

#/usr/local/lib

/usr/lib

Une fois l'édition terminée, exécutez cette commande:

Sudo ldconfig

Ensuite, vous aurez un bon réglage lorsque vous exécutez:

ldd/usr/bin/openssl

Avant ce correctif:

 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
linux-vdso.so.1 =>  (0x00007ffe6d1e3000)
libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f8999827000)
libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007f89993ed000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8999023000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8998e1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8999a97000)

Après la correction, j'ai fourni:

linux-vdso.so.1 =>  (0x00007ffec39bc000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7faad22000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7faa8dd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7faa513000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7faa30f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7faaf8b000)
0
ZEROF