errore durante il caricamento delle librerie condivise: libcrypto.so.1.1


13

Quando eseguo "openssl" ricevo un errore come di seguito:

openssl: errore durante il caricamento delle librerie condivise: libcrypto.so.1.1: impossibile aprire il file oggetto condiviso: nessun file o directory "

Questo è successo dopo che ho tentato di aggiornare OpenSSL secondo questo articolo

C'è un modo per risolvere questo problema?

Sistema operativo: server Web CentOS 6.8: nginx / 1.10.2

Aggiornamento n. 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.

2
Siamo spiacenti, hai incontrato un altro brutto tutorial su Internet. Potrebbe essere necessario reinstallare il sistema. Prima di andare oltre, ti suggerisco di chiedere del problema originale che stavi cercando di risolvere facendo questo. C'è probabilmente un modo migliore per raggiungere l'obiettivo originale.
Michael Hampton

Volevo installare l'applicazione Server Monitor fornita da Monitis. Aveva bisogno di alcune dipendenze di libreria condivise che non erano installate sul mio server. Quindi, tutto ciò è successo quando è stato necessario installarli. :(
mayasl

@MichaelHampton Per favore, dimmi qualcosa, tranne reinstallare il sistema. Perché un sito live è in esecuzione su quel server!
Mayasl,

Risposte:


20

Ho avuto lo stesso problema dopo l'installazione dell'ultima versione di OpenSSL 1.1.0c, ho risolto il problema di copiare i file di libreria libcrypto.so.1.1, libcrypto.ae libssl.soda /usr/local/lib64alla biblioteca azione al /usr/lib64.
Dopo aver copiato le librerie è necessario creare il collegamento simbolico.

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

Dopo aver creato il collegamento simbolico è stata richiesta anche la ricostruzione della cache di ldconfig :

sudo ldconfig

8

Con la tua versione originale di OpenSSL ha saputo trovare le librerie condivise perché /usr/lib64è incluso nel percorso di ricerca del linker. Quando hai scaricato e compilato una copia "locale" di OpenSSL, le librerie condivise sono state inserite /usr/local/lib64per impostazione predefinita. Quindi probabilmente devi solo aggiungere questa directory al percorso di ricerca del linker, in questo modo (come root):

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

quindi eseguire:

ldconfig

Credo che questo risolverà il tuo problema.


Almeno nelle moderne distribuzioni di Ubuntu (scrivo questo su 16.04 LTS) e probabilmente in altri, sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.confsi verificherà un errore di "autorizzazione negata" perché la seconda metà del comando (la scrittura del file) non viene eseguita come root. In questo caso, prova sudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"invece.
Matthew Cole,

3

Ho riscontrato questo errore utilizzando Termux su ChromeOS, che ha causato l' arresto anomalo dei programmi della riga di comando npme node.

L'esecuzione ha pkg upgraderisolto il problema!


1

Puoi reinstallarlo usando

yum install -y openssl-devel


Ci ho provato anche io, ma non ho aiutato!
Mayasl,

@mayasl Forse devi reinstallare anche altri pacchetti. Mi aspetto che un pacchetto chiamato openssl-develdipenda da un pacchetto chiamato openssl. Ricorda che è passato molto tempo da quando ho toccato yum, quindi non posso verificare la sintassi del comando per te.
Kasperd,

Ho aggiornato la mia domanda con l'output di "yum info openssl". Dai un'occhiata, se è utile. Ho rimosso e reinstallato openssl e openssl-devel prima di iniziare questo thread. Non ha funzionato! Comandi che ho usato: codeyum remove openssl yum remove openssl-devel yum clean all
mayasl

La reinstallazione openssl(e non openssl-devel) dovrebbe essere un buon inizio.
Michael Hampton

Ho già provato che @MichaelHampton È una specie di problema di collegamento ???
Mayasl,

1

Quello che ha detto @benedict ha funzionato per me. Tuttavia, è possibile che alcuni dei collegamenti simbolici puntino a versioni precedenti. L'esecuzione ls -l libcrypto*da / usr / libs ti mostrerà i collegamenti. Come nell'esempio seguente:

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

Quindi si desidera rimuovere prima il collegamento esistente digitando sudo rm libcrypto.soe quindi copiando libcrypto.so.1.1 come menzionato @benedict. Finalmente puoi creare il nuovo link. sudo ln -s libcrypto.so.1.1 libcrypto.so

Spero che sia di aiuto.


1

Il libcrypto.soappartiene al openssl-libspacchetto. Se si forza manualmente rimosso (con --nodeps) questo pacchetto o lo ha danneggiato aggiornandolo, si perderà l'accesso a yum, wget, curl, ssh, ecc. Se il sistema ha accesso a Internet, scaricare openssl-libsusando il comando /usr/bin/GET. La sintassi sarebbe simile alla seguente se si sta tentando di ripristinare la versione 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

Questo creerà un openssl-libs-1.0.2k-8.el7.x86_64.rpmpacchetto per te, puoi usarlo per reinstallare o estrarre il .sofile mancante .


0

Ho attraversato esattamente lo stesso problema ... L'ho risolto eseguendo i seguenti comandi.

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

Questo creerà un softlink e sei a posto.


0

Questa è la migliore soluzione che ho trovato in giro ... altre soluzioni fornite su Internet non sopravvivranno al riavvio del sistema;)

Sistema operativo: Ubuntu 16.04

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

Commenta le impostazioni della directory lib e aggiungi un buon percorso

# libc default configuration

#/usr/local/lib

/usr/lib

Al termine della modifica, eseguire questo comando:

sudo ldconfig

Quindi avrai una buona impostazione quando corri:

ldd / usr / bin / openssl

Prima di questa correzione:

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

Dopo la correzione ho fornito:

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)

Per le persone con percorso CentOS, penso che un buon file sia /etc/ld.so.conf;), solo per essere chiari.
ZEROF

0

Su CentOS 7 libssl.so.1.1risiede in /usr/local/ssl/lib.

Quindi ho dovuto solo aggiungere questo percorso alle posizioni predefinite, in cui il caricatore dinamico cerca le librerie. Ho creato un file separato per il mio binario openssl, chiamato openssl-1.1.1c.conf, nella /etc/ld.so.conf.dcartella:

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

Ora funziona.


-1

Dopo aver compilato e installato open ssl openssl-1.1.0f, ho corretto lo stesso errore per lib libssl.so.1.1 creando un collegamento software:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.