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 selon cet article
Y a-t-il 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.
Réponses:
Je faisais le même problème après l' installation de la dernière version de OpenSSL 1.1.0c, je résolu le problème de la copie des fichiers de bibliothèque
libcrypto.so.1.1
,libcrypto.a
etlibssl.so
de/usr/local/lib64
la bibliothèque d'actions à/usr/lib64
.Après avoir copié les bibliothèques, vous devez créer le lien symbolique.
Après avoir créé le lien symbolique, la reconstruction du cache ldconfig était également requise:
la source
Avec votre version originale d'OpenSSL, il savait comment trouver les bibliothèques partagées car il
/usr/lib64
est inclus dans le chemin de recherche du lieur. Lorsque vous avez téléchargé et compilé une copie "locale" d'OpenSSL, les bibliothèques partagées ont été placées/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):puis exécutez:
Je crois que cela résoudra votre problème.
la source
sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
cela entraînera une erreur "permission refusée" car la seconde moitié de la commande (l'écriture du fichier) n'est pas exécutée en tant que root. Si cela se produit, essayezsudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"
plutôt.J'ai eu cette erreur en utilisant Termux sur ChromeOS, ce qui a provoqué le plantage des programmes en ligne de commande
npm
etnode
.L'exécution a
pkg upgrade
résolu le problème!la source
Vous pouvez le réinstaller en utilisant
yum install -y openssl-devel
la source
openssl-devel
dépende d'un package appeléopenssl
. Gardez à l'esprit que cela fait longtemps que je n'ai pas touchéyum
, donc je ne peux pas vérifier la syntaxe de la commande pour vous.code
yum remove openssl yum remove openssl-devel yum clean allopenssl
(et nonopenssl-devel
) devrait être un bon début.Ce que @benedict a dit a fonctionné pour moi. Cependant, vous pouvez constater que certains des liens symboliques pointent vers des versions plus anciennes. L'exécution à
ls -l libcrypto*
partir de / usr / libs vous montrera les liens. Comme dans l'exemple ci-dessous:Ensuite, vous voudrez 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.
la source
L'
libcrypto.so
appartient auopenssl-libs
package. Si vous forcez manuellement la suppression (avec--nodeps
) ce package ou le corrompez en le mettant à niveau, vous perdrez l'accès à yum, wget, curl, ssh, etc. Si le système a accès à Internet, téléchargez-leopenssl-libs
à l'aide de la commande/usr/bin/GET
. La syntaxe ressemblerait à celle ci-dessous si vous essayez de restaurer la versionopenssl-libs-1.0.2k-8.el7.x86_64
:Cela créera un
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 manquant .la source
Je suis passé par exactement le même problème ... 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.
la source
C'est la meilleure solution que j'ai trouvée autour ... d'autres solutions fournies partout sur Internet, ne survivront pas au redémarrage du système;)
OS: Ubuntu 16.04
Commenter les paramètres du répertoire lib et ajouter un bon chemin
Une fois l'édition terminée, exécutez cette commande:
Ensuite, vous aurez un bon réglage lorsque vous exécutez:
ldd / usr / bin / openssl
Avant ce correctif:
Après la correction, j'ai fourni:
la source
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 le/etc/ld.so.conf.d
dossier:echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf
Maintenant ça marche.
la source
Après avoir construit et installé open ssl openssl-1.1.0f, j'ai corrigé la même erreur pour lib libssl.so.1.1 en créant un lien logiciel:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
la source