Esto es unPregunta canónicasobre 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 Percona 5.5 instalado y estoy intentando actualizar a 5.6, pero tengo problemas inesperados y no sé cómo resolverlos.
Seguí las instrucciones enhttp://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
Intenté de todo, desde reinstalar openssl y openssl-devel, que están instalados correctamente, pero todavía 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 [/]#
Respuesta1
La causa principal de este problema es que Red Hat rompió la compatibilidad binaria de sus paquetes OpenSSL entre 6.4 y 6.5, algo quePrometieron que no lo harían..
Resolver este problema es sencillo, pero dependiendo de las aplicaciones que haya implementado, puede que sea necesario gritar a los proveedores de aplicaciones. Asegúrese de reservar la mayor parte de su ira para su representante de Red Hat (si tiene RHEL).
Causa
Red Hat actualizó la versión de OpenSSL en EL6de 1.0.0 a 1.0.1 en la actualización 6.5, para resolveruna solicitud de función de hace añospara agregar soporte de criptografía 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 código fuente con 1.0.1.
A menos que estés instalando aplicaciones de terceros, por supuesto, lo que casi todo el mundo hace. Estos también deben recompilarse y, en este punto, la mayoría de terceros lo han hecho y han creado nuevos paquetes para 6.5. Son estos paquetes los que generalmente envían terceros en la actualidad.
Resolución
Identifique todos los paquetes de terceros afectados y comuníquese con los proveedores de paquetes de terceros para obtener actualizaciones. Una vez que las actualizaciones estén disponibles para todos los paquetes, puede actualizar su sistema de forma 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 y repositorios yum adecuados en estos casos.
La mayoría de los usuarios pueden actualizar a 6.5 con un comando como:
yum --disableexcludes=all --obsoletes update
Los usuarios de RHEL que hayan configurado una versión menor específica primero deben configurar 6.5 como su destino de lanzamiento antes de ejecutar la actualización anterior:
subscription-manager release --set=6.5
En este punto, debería poder instalar los paquetes de terceros que estaba intentando instalar.
Otros asuntos
Los usuarios de CentOS y otros clones de RHEL en ciertos VPS o proveedores de nube pueden descubrir 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 en algunos proveedores de VPS de gama baja.
En estos casos, el proveedor de la imagen de CentOS en uso ha modificado /etc/yum.repos.d/CentOS-Base.repo
la imagen para que apunte a repositorios distintos de 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 reinstalándolo. Por ejemplo (esta URL solo es válida hoy y puede quedar obsoleta más adelante; consulte primero su espejo):
yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm
Respuesta2
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/