Cuando ejecuto "openssl" obtengo el siguiente error:
openssl: error al cargar bibliotecas compartidas: libcrypto.so.1.1: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio "
Esto sucedió después de que intenté actualizar OpenSSL de acuerdo con este artículo
¿Hay alguna forma de arreglar esto?
SO: servidor web CentOS 6.8: nginx / 1.10.2
Actualización 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.
Respuestas:
Yo estaba teniendo el mismo problema después de instalar la última versión de OpenSSL 1.1.0c, resolví el problema de copiar los archivos de la biblioteca
libcrypto.so.1.1
,libcrypto.a
ylibssl.so
de/usr/local/lib64
la biblioteca de acción al/usr/lib64
.Después de copiar las bibliotecas, debe crear el enlace simbólico.
Después de crear el enlace simbólico, también se requería la reconstrucción de la caché ldconfig :
fuente
Con su versión original de OpenSSL sabía cómo encontrar las bibliotecas compartidas porque
/usr/lib64
está incluida en la ruta de búsqueda del enlazador. Cuando descargó y compiló una copia "local" de OpenSSL, las bibliotecas compartidas se colocaron/usr/local/lib64
de forma predeterminada. Entonces, probablemente solo necesite agregar este directorio a la ruta de búsqueda del enlazador, como este (como root):luego ejecuta:
Creo que esto resolverá tu problema.
fuente
sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
dará como resultado un error de "permiso denegado" porque la segunda mitad del comando (la escritura del archivo) no se ejecuta como root. Si esto sucede, intente en susudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"
lugar.Tengo este error utilizando Termux en Chrome, lo que provocó que las
npm
y losnode
programas de línea de comandos se bloquee.Correr
pkg upgrade
solucionó el problema!fuente
Puedes reinstalarlo usando
yum install -y openssl-devel
fuente
openssl-devel
dependa de un paquete llamadoopenssl
. Tenga en cuenta que ha pasado mucho tiempo desde que toquéyum
, por lo que no puedo verificar la sintaxis del comando para usted.code
yum remove openssl yum remove openssl-devel yum clean allopenssl
, (y noopenssl-devel
) debería ser un buen comienzo.Lo que dijo @benedict funcionó para mí. Sin embargo, puede encontrar que algunos de los enlaces simbólicos apuntan a versiones anteriores. Ejecutar
ls -l libcrypto*
desde / usr / libs le mostrará los enlaces. Como en el siguiente ejemplo:Luego, querrá eliminar el enlace existente primero escribiendo
sudo rm libcrypto.so
y luego copiando libcrypto.so.1.1 como se menciona en @benedict. Finalmente puedes crear el nuevo enlace.sudo ln -s libcrypto.so.1.1 libcrypto.so
Espero que esto ayude.
fuente
El
libcrypto.so
pertenece alopenssl-libs
paquete. Si fuerza manualmente la eliminación (con--nodeps
) este paquete o lo corrompe al actualizarlo, perderá el acceso a yum, wget, curl, ssh, etc. Si el sistema tiene acceso a Internet, descargueopenssl-libs
el comando/usr/bin/GET
. La sintaxis sería similar a la siguiente si está intentando restaurar la versiónopenssl-libs-1.0.2k-8.el7.x86_64
:Esto creará un
openssl-libs-1.0.2k-8.el7.x86_64.rpm
paquete para usted, puede usarlo para reinstalar o extraer el.so
archivo que falta .fuente
He pasado por exactamente el mismo problema ... Lo he resuelto ejecutando los siguientes comandos.
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
Esto creará un enlace suave y listo.
fuente
Esta es la mejor solución que he encontrado en ... otras soluciones proporcionadas en Internet no sobrevivirán al reinicio del sistema;)
SO: Ubuntu 16.04
Comente la configuración del directorio lib y agregue una buena ruta
Cuando termine de editar, ejecute este comando:
Entonces tendrá una buena configuración cuando ejecute:
ldd / usr / bin / openssl
Antes de esta solución:
Después de la solución que proporcioné:
fuente
En CentOS 7
libssl.so.1.1
reside en/usr/local/ssl/lib
.Así que solo tuve que agregar esta ruta a las ubicaciones predeterminadas, donde el cargador dinámico busca bibliotecas. Creé un archivo separado para mi binario openssl, llamado
openssl-1.1.1c.conf
, en la/etc/ld.so.conf.d
carpeta:echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf
Ahora funciona.
fuente
Después de construir e instalar open ssl openssl-1.1.0f, arreglé el mismo error para lib libssl.so.1.1 creando un enlace suave:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
fuente