Esta é uma pergunta canônica sobre problemas de compatibilidade binária do OpenSSL entre o Red Hat Enterprise Linux (e seus derivados) 6.4 e 6.5.
Esse problema se aplica a uma ampla variedade de pacotes de terceiros, não apenas aos listados na pergunta original.
Eu tinha o Percona 5.5 instalado e estou tentando atualizar para a versão 5.6, mas estou tendo problemas inesperados e não consigo resolver.
Sigai as instruções em http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html
E removeu os pacotes 5.5 e, em seguida, executou o seguinte comando para atualizar:
yum install Percona-Server-server-56 Percona-Server-client-56
Os erros que recebi de volta são:
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
Eu tentei de tudo, desde a reinstalação do openssl e do openssl-devel, que está instalado corretamente, mas ainda não funciona. Alguma ideia?
Estou executando o 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 [/]#
Respostas:
A causa raiz desse problema é que a Red Hat quebrou a compatibilidade binária de seus pacotes OpenSSL entre 6.4 e 6.5, algo que eles prometeram que não fariam .
A solução desse problema é simples, mas, dependendo dos aplicativos que você pode ter implantado, pode levar alguns gritos aos fornecedores de aplicativos. Certifique-se de reservar a maior parte de sua ira para o seu representante Red Hat (se você tiver RHEL).
Causa
A Red Hat atualizou a versão do OpenSSL no EL6 de 1.0.0 para 1.0.1 na atualização 6.5 , a fim de resolver uma solicitação de recurso de anos para adicionar suporte à criptografia de curva elíptica. Este pacote não é mais compatível com binários e os programas que foram criados no OpenSSL 1.0.0 devem ser reconstruídos da fonte no 1.0.1.
A menos que você esteja instalando aplicativos de terceiros, é claro, o que quase todo mundo faz. Eles também precisam ser recompilados e, neste momento, a maioria de terceiros o fez e construíram novos pacotes contra o 6.5. São esses pacotes que geralmente são enviados por terceiros hoje.
Resolução
Identifique todos os pacotes de terceiros afetados e entre em contato com os fornecedores de pacotes de terceiros para obter atualizações. Depois que as atualizações estiverem disponíveis para todos os pacotes, você poderá atualizar o sistema com segurança para 6.5, instalando as atualizações de pacotes de terceiros ao mesmo tempo, o que concluirá a resolução.
Para pacotes instalados através do gerenciador de pacotes e dos repositórios yum, isso é trivial; simplesmente tentar atualizar e poder fazer isso sem problemas de dependência significa que os pacotes estão prontos.
Para pacotes instalados manualmente, você mesmo deve verificar esses itens e aplicar as atualizações fornecidas pelos fornecedores. Você também deve pressionar esses fornecedores a fornecer pacotes RPM adequados e repositórios yum nesses casos.
A maioria dos usuários pode atualizar para a 6.5 com um comando como:
Os usuários do RHEL que definiram uma versão secundária específica devem primeiro definir a versão 6.5 como destino da versão antes de executar a atualização acima:
Nesse ponto, você poderá instalar os pacotes de terceiros que estava tentando instalar.
Outros problemas
Os usuários do CentOS e de outros clones RHEL em determinados provedores de VPS ou nuvem podem achar que não conseguem atualizar para a 6.5. O
yum
comando indicará que nenhum pacote está marcado para atualização. Até agora, já vi isso no Windows Azure e em alguns provedores de VPS low-end.Nesses casos, o provedor da imagem do CentOS em uso foi modificado
/etc/yum.repos.d/CentOS-Base.repo
na imagem para apontar para repositórios que não sejam os espelhos oficiais do CentOS.Isso pode ser resolvido editando manualmente o arquivo repo para restaurar os espelhos oficiais do CentOS ou localizando o
centos-release
RPM oficial em um espelho do CentOS e reinstalando-o. Por exemplo (este URL é bom apenas hoje e pode ficar desatualizado mais tarde; verifique seu espelho primeiro):fonte
Você pode instalar o PS 5.6 depois de atualizar o openssl para openssl-1.0.1e-15.el6.x86_64.rpm
Para o 6.4, nós (eu trabalho para a Percona) também temos alguns pacotes personalizados disponíveis: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/
fonte