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.
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
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.
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!
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.
Vous pouvez le réinstaller en utilisant
yum install -y openssl-devel
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.
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.
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.
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)