Esta es una pregunta canónica sobre los problemas de compatibilidad binaria de OpenSSL entre Red Hat Enterprise Linux (y sus derivados) 6.4 y 6.5.
Este problema se aplica a una amplia variedad de paquetes de terceros, no solo a los enumerados en la pregunta original.
Tenía instalado Percona 5.5 y estoy tratando de actualizar a 5.6, pero me encuentro con problemas inesperados y no sé cómo resolverlos.
Seguí las instrucciones en http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html
Y eliminó los paquetes 5.5, luego ejecutó el siguiente comando para actualizar:
yum install Percona-Server-server-56 Percona-Server-client-56
Los errores que recibí son:
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-shared-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Finished Dependency Resolution
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of mysql
He intentado todo desde reinstalar openssl y openssl-devel que está instalado correctamente pero aún no funciona. ¿Algunas ideas?
Estoy ejecutando CentOS 6.4:
root@server01 [/]# cat /proc/version
Linux version 2.6.32-279.5.2.el6.x86_64 ([email protected]) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Aug 24 01:07:11 UTC 2012
root@server01 [/]#
Respuestas:
La causa raíz de este problema es que Red Hat rompió la compatibilidad binaria de sus paquetes OpenSSL entre 6.4 y 6.5, algo que prometieron que no harían .
Resolver este problema es sencillo, pero dependiendo de las aplicaciones que pueda haber implementado, puede tomar algunos gritos a sus proveedores de aplicaciones. Asegúrese de reservar la mayor parte de su ira para su representante de Red Hat (si tiene RHEL).
Porque
Red Hat actualizó la versión de OpenSSL en EL6 de 1.0.0 a 1.0.1 en la actualización 6.5 , con el fin de resolver una solicitud de función de años de antigüedad para agregar soporte criptográfico de curva elíptica. Este paquete ya no es compatible con binarios, y los programas que se crearon con OpenSSL 1.0.0 deben reconstruirse desde el origen con 1.0.1.
A menos que esté instalando aplicaciones de terceros, por supuesto, lo que casi todos hacen. También es necesario volver a compilarlos, y en este punto la mayoría de los terceros lo han hecho y han creado nuevos paquetes con 6.5. Son estos paquetes los que los terceros generalmente envían hoy.
Resolución
Identifique todos los paquetes de terceros afectados y póngase en contacto con los proveedores de paquetes de terceros para obtener actualizaciones. Una vez que haya actualizaciones disponibles para todos los paquetes, puede actualizar su sistema de manera segura a 6.5, instalando las actualizaciones de paquetes de terceros al mismo tiempo, lo que completará la resolución.
Para los paquetes instalados a través del administrador de paquetes y los repositorios yum, esto es trivial; simplemente intentar actualizar y poder hacerlo sin problemas de dependencia significa que los paquetes están listos.
Para los paquetes instalados manualmente, deberá verificarlos usted mismo y aplicar las actualizaciones que hayan proporcionado los proveedores. También debe presionar a estos proveedores para que proporcionen paquetes RPM adecuados y repositorios yum en estos casos.
La mayoría de los usuarios pueden actualizar a 6.5 con un comando como:
Los usuarios de RHEL que han establecido una versión menor específica primero deben configurar 6.5 como destino de la versión antes de ejecutar la actualización anterior:
En este punto, debería poder instalar los paquetes de terceros que estaba intentando instalar.
Otros asuntos
Los usuarios de CentOS y otros clones RHEL en ciertos proveedores de VPS o en la nube pueden encontrar que no pueden actualizar a 6.5. El
yum
comando indicará que no hay paquetes marcados para actualización. Hasta ahora he visto esto en Windows Azure y algunos proveedores de VPS de gama baja.En estos casos, el proveedor de la imagen CentOS en uso ha modificado
/etc/yum.repos.d/CentOS-Base.repo
la imagen para apuntar a repositorios que no sean los espejos oficiales de CentOS.Esto se puede resolver editando manualmente el archivo de repositorio para restaurar las réplicas oficiales de CentOS, o localizando el
centos-release
RPM oficial en una réplica de CentOS y reinstalando. Por ejemplo (esta URL solo es válida hoy y puede quedar desactualizada más tarde; revise su espejo primero):fuente
Puede instalar PS 5.6 una vez que haya actualizado openssl a openssl-1.0.1e-15.el6.x86_64.rpm
Para 6.4 nosotros (trabajo para Percona) también tenemos algunos paquetes personalizados disponibles: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/
fuente