Fehler beim Laden der gemeinsam genutzten Bibliotheken: libcrypto.so.1.1

12

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.
mayasl
quelle
2
Entschuldigung, Sie sind auf ein weiteres schlechtes Internet-Tutorial gestoßen. Möglicherweise müssen Sie das System neu installieren. Bevor Sie fortfahren, sollten Sie sich nach dem ursprünglichen Problem erkundigen, das Sie auf diese Weise lösen wollten. Es gibt wahrscheinlich einen besseren Weg, um das ursprüngliche Ziel zu erreichen.
Michael Hampton
Ich wollte die von Monitis bereitgestellte Server Monitor-Anwendung installieren. Es wurden einige Shared Library-Abhängigkeiten benötigt, die nicht auf meinem Server installiert waren. All dies geschah, als diese installiert werden mussten. :(
Mayasl
@MichaelHampton Sagen Sie mir bitte etwas anderes als die Neuinstallation des Systems. Weil auf diesem Server eine Live-Site läuft!
Mayasl

Antworten:

19

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.aund libssl.soaus /usr/local/lib64der Aktie Bibliothek an /usr/lib64.
Nach dem Kopieren der Bibliotheken müssen Sie den symbolischen Link erstellen.

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

Nach dem Neuaufbau des symbolischen Links war auch der ldconfig-Cache erforderlich:

sudo ldconfig
Benedikt
quelle
8

Mit Ihrer Originalversion von OpenSSL wusste es, wie man die freigegebenen Bibliotheken findet, da /usr/lib64sie im Suchpfad des Linkers enthalten sind. Wenn Sie eine "lokale" Kopie von OpenSSL heruntergeladen und kompiliert haben, wurden die freigegebenen Bibliotheken /usr/local/lib64standardmäßig abgelegt . Sie müssen dieses Verzeichnis also wahrscheinlich nur wie folgt zum Suchpfad des Linkers hinzufügen (als root):

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

dann führen Sie aus:

ldconfig

Ich glaube, dies wird Ihr Problem lösen.

doug.fsu
quelle
In zumindest modernen Ubuntu-Distributionen (ich schreibe dies auf 16.04 LTS) und wahrscheinlich in anderen sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.confwird 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 es sudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"stattdessen.
Matthew Cole
3

Ich habe diesen Fehler mit Termux auf ChromeOS, die die verursachten npmund nodeKommandozeilen - Programme zum Absturz bringen.

Running hat pkg upgradedas Problem behoben!

Carl Walsh
quelle
1

Sie können es mit neu installieren

yum install -y openssl-devel

mzhaase
quelle
Ich habe es auch versucht, aber nicht geholfen!
Mayasl
@mayasl Möglicherweise müssen Sie auch andere Pakete neu installieren. Ich würde erwarten, dass ein aufgerufenes Paket openssl-develvon einem aufgerufenen Paket abhängt openssl. Denken Sie daran, dass es lange her ist, dass ich berührt habe yum, sodass ich die Syntax des Befehls für Sie nicht überprüfen kann.
Kasperd
Ich habe meine Frage mit der Ausgabe von "yum info openssl" aktualisiert. Bitte schauen Sie, ob es sinnvoll ist. Ich habe openssl und openssl-devel entfernt und neu installiert, bevor ich diesen Thread gestartet habe. Hat nicht funktioniert! Von mir verwendete Befehle: codeyum remove openssl yum remove openssl-devel yum clean all
Mayasl
Neuinstallation openssl(und nicht openssl-devel) sollte ein guter Anfang sein.
Michael Hampton
@MichaelHampton habe ich schon ausprobiert. Ist das eine Art Verbindungsproblem ???
Mayasl
1

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:

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

Dann möchten Sie den vorhandenen Link zuerst entfernen, indem Sie sudo rm libcrypto.solibcrypto.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.

Ihsan Izwer
quelle
1

Die libcrypto.sogehört zum openssl-libsPaket. 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 das openssl-libsmit dem Befehl herunter /usr/bin/GET. Die Syntax würde wie folgt aussehen, wenn Sie versuchen, die Version wiederherzustellen 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

Dadurch wird ein openssl-libs-1.0.2k-8.el7.x86_64.rpmPaket für Sie erstellt, mit dem Sie die fehlende .soDatei entweder neu installieren oder extrahieren können .

Karthik
quelle
0

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.

Faheem
quelle
0

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

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

Kommentieren Sie die lib-Verzeichniseinstellungen und fügen Sie einen guten Pfad hinzu

# libc default configuration

#/usr/local/lib

/usr/lib

Führen Sie nach Abschluss der Bearbeitung den folgenden Befehl aus:

sudo ldconfig

Dann haben Sie eine gute Einstellung, wenn Sie laufen:

ldd / usr / bin / openssl

Vor diesem Fix:

 /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)

Nach dem Update lieferte ich:

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)
NULL
quelle
Für Leute mit CentOS-Pfad, ich denke, gute Datei ist /etc/ld.so.conf;), nur um klar zu sein.
ZEROF
0

Auf CentOS 7 libssl.so.1.1befindet 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.confim /etc/ld.so.conf.dOrdner erstellt:

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

Jetzt funktioniert es.

Boris Burkov
quelle
-1

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

Rafael
quelle