Beim Ausführen von "openssl" wird die folgende Fehlermeldung angezeigt:
openssl: Fehler beim Laden der gemeinsam genutzten Bibliotheken: libcrypto.so.1.1: Datei mit gemeinsam genutzten Objekten kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis "
Dies geschah, nachdem ich versucht hatte, OpenSSL gemäß diesem Artikel zu aktualisieren
Gibt es sowieso, um das zu beheben?
Betriebssystem: CentOS 6.8 Webserver: nginx / 1.10.2
Update Nr. 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.
Antworten:
Ich war das gleiche Problem habe , nachdem die letzte Version von OpenSSL 1.1.0c installieren, beschloß ich , das Problem die Bibliothek Dateien zu kopieren
libcrypto.so.1.1
,libcrypto.a
undlibssl.so
aus/usr/local/lib64
der Aktie Bibliothek an/usr/lib64
.Nach dem Kopieren der Bibliotheken müssen Sie den symbolischen Link erstellen.
Nach dem Neuaufbau des symbolischen Links war auch der ldconfig-Cache erforderlich:
quelle
Mit Ihrer Originalversion von OpenSSL wusste es, wie man die freigegebenen Bibliotheken findet, da
/usr/lib64
sie im Suchpfad des Linkers enthalten sind. Wenn Sie eine "lokale" Kopie von OpenSSL heruntergeladen und kompiliert haben, wurden die freigegebenen Bibliotheken/usr/local/lib64
standardmäßig abgelegt . Sie müssen dieses Verzeichnis also wahrscheinlich nur wie folgt zum Suchpfad des Linkers hinzufügen (als root):dann führen Sie aus:
Ich glaube, dies wird Ihr Problem lösen.
quelle
sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
wird ein Fehler "Berechtigung verweigert" angezeigt, da die zweite Hälfte des Befehls (das Schreiben der Datei) nicht als root ausgeführt wird. In diesem Fall versuchen Sie essudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"
stattdessen.Ich habe diesen Fehler mit Termux auf ChromeOS, die die verursachten
npm
undnode
Kommandozeilen - Programme zum Absturz bringen.Running hat
pkg upgrade
das Problem behoben!quelle
Sie können es mit neu installieren
yum install -y openssl-devel
quelle
openssl-devel
von einem aufgerufenen Paket abhängtopenssl
. Denken Sie daran, dass es lange her ist, dass ich berührt habeyum
, sodass ich die Syntax des Befehls für Sie nicht überprüfen kann.code
yum remove openssl yum remove openssl-devel yum clean allopenssl
(und nichtopenssl-devel
) sollte ein guter Anfang sein.Was @benedict sagte, hat für mich funktioniert. Möglicherweise stellen Sie jedoch fest, dass einige der Symlinks auf ältere Versionen verweisen. Wenn Sie
ls -l libcrypto*
von / usr / libs aus starten, werden Ihnen die Links angezeigt. Wie im folgenden Beispiel:Dann möchten Sie den vorhandenen Link zuerst entfernen, indem Sie
sudo rm libcrypto.so
libcrypto.so.1.1 wie @benedict erwähnt eingeben und dann kopieren. Schließlich können Sie den neuen Link erstellen.sudo ln -s libcrypto.so.1.1 libcrypto.so
Hoffe das hilft.
quelle
Die
libcrypto.so
gehört zumopenssl-libs
Paket. Wenn Sie das Entfernen (mit--nodeps
) dieses Pakets manuell erzwingen oder es durch ein Upgrade beschädigen, verlieren Sie den Zugriff auf yum, wget, curl, ssh usw. Wenn das System über einen Internetzugang verfügt, laden Sie dasopenssl-libs
mit dem Befehl herunter/usr/bin/GET
. Die Syntax würde wie folgt aussehen, wenn Sie versuchen, die Version wiederherzustellenopenssl-libs-1.0.2k-8.el7.x86_64
:Dadurch wird ein
openssl-libs-1.0.2k-8.el7.x86_64.rpm
Paket für Sie erstellt, mit dem Sie die fehlende.so
Datei entweder neu installieren oder extrahieren können .quelle
Ich bin durch das genau gleiche Problem gegangen ... Ich habe es durch Ausführen der folgenden Befehle gelöst.
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
Dadurch wird ein Softlink erstellt und Sie können loslegen.
quelle
Dies ist die beste Lösung, die ich je gefunden habe ... andere Lösungen, die über das Internet angeboten werden, werden einen Neustart des Systems nicht überleben;)
Betriebssystem: Ubuntu 16.04
Kommentieren Sie die lib-Verzeichniseinstellungen und fügen Sie einen guten Pfad hinzu
Führen Sie nach Abschluss der Bearbeitung den folgenden Befehl aus:
Dann haben Sie eine gute Einstellung, wenn Sie laufen:
ldd / usr / bin / openssl
Vor diesem Fix:
Nach dem Update lieferte ich:
quelle
Auf CentOS 7
libssl.so.1.1
befindet sich in/usr/local/ssl/lib
.Daher musste ich diesen Pfad nur zu den Standardpositionen hinzufügen, an denen der Dynamic Loader nach Bibliotheken sucht. Ich habe eine separate Datei für meine openssl-Binärdatei mit dem Namen
openssl-1.1.1c.conf
im/etc/ld.so.conf.d
Ordner erstellt:echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf
Jetzt funktioniert es.
quelle
Nachdem ich open ssl openssl-1.1.0f erstellt und installiert habe, habe ich denselben Fehler für lib libssl.so.1.1 behoben, indem ich einen Softlink erstellt habe:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
quelle