Causa

Causa

Isto é umPergunta Canônicasobre problemas de compatibilidade binária OpenSSL entre Red Hat Enterprise Linux (e seus derivados) 6.4 e 6.5.

Este 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 o 5.6, mas estou enfrentando problemas inesperados e não sei como resolvê-los.

Eu segui as instruções emhttp://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html

E removi os pacotes 5.5 e executei 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 reinstalar o openssl e o 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 [/]#

Responder1

A causa raiz deste problema é que a Red Hat quebrou a compatibilidade binária de seus pacotes OpenSSL entre 6.4 e 6.5, algo queeles prometeram que não fariam.

Resolver esse problema é simples, mas dependendo dos aplicativos que você implantou, pode ser necessário gritar com os fornecedores de aplicativos. Certifique-se de reservar a maior parte de sua ira para seu representante da Red Hat (se você tiver RHEL).


Causa

A Red Hat atualizou a versão do OpenSSL no EL6de 1.0.0 a 1.0.1 na atualização 6.5, para resolveruma solicitação de recurso de anos atráspara adicionar suporte à criptografia de curva elíptica. Este pacote não é mais compatível com binários e os programas que foram compilados no OpenSSL 1.0.0 devem ser reconstruídos a partir do código-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 ponto, a maioria dos terceiros já o fez e construiu novos pacotes no 6.5. São esses pacotes que terceiros geralmente enviam 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. Assim que as atualizações estiverem disponíveis para todos os pacotes, você poderá atualizar seu sistema com segurança para 6.5, instalando as atualizações de pacotes de terceiros ao mesmo tempo, o que completará a resolução.

Para pacotes instalados através do gerenciador de pacotes e dos repositórios yum, isso é trivial; simplesmente tentar atualizar e poder fazê-lo sem problemas de dependência significa que os pacotes estão prontos.

Para pacotes instalados manualmente, você mesmo precisará verificá-los e aplicar quaisquer atualizações fornecidas pelos fornecedores. Você também deve pressionar esses fornecedores para fornecer pacotes RPM e repositórios yum adequados nesses casos.

A maioria dos usuários pode atualizar para 6.5 com um comando como:

yum --disableexcludes=all --obsoletes update

Os usuários RHEL que definiram uma versão secundária específica devem primeiro definir 6.5 como seu alvo de lançamento antes de executar a atualização acima:

subscription-manager release --set=6.5

Neste ponto, você deverá conseguir instalar o(s) pacote(s) de terceiros que estava tentando instalar.


Outros problemas

Os usuários do CentOS e de outros clones RHEL em determinados VPS ou provedores de nuvem podem descobrir que não conseguem atualizar para 6.5. O yumcomando indicará que nenhum pacote está marcado para atualização. Até agora, vi isso no Windows Azure e em alguns provedores de VPS de baixo custo.

Nestes casos, o provedor da imagem CentOS em uso modificou /etc/yum.repos.d/CentOS-Base.repoa imagem para apontar para repositórios diferentes dos espelhos oficiais do CentOS.

Isso pode ser resolvido editando manualmente o arquivo repo para restaurar os espelhos oficiais do CentOS ou localizando o centos-releaseRPM oficial em um espelho do CentOS e reinstalando-o. Por exemplo (este URL só é válido hoje e pode ficar desatualizado mais tarde; verifique primeiro o seu espelho):

yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm

Responder2

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 customizados disponíveis: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

informação relacionada