L'installation d'un package d'application tiers sur CentOS 6.4 échoue en raison des dépendances manquantes libcrypto.so.10 et libssl.so.10

16

Il s'agit d'une question canonique sur les problèmes de compatibilité binaire OpenSSL entre Red Hat Enterprise Linux (et ses dérivés) 6.4 et 6.5.

Ce problème s'applique à une grande variété de packages tiers, pas seulement ceux répertoriés dans la question d'origine.

J'ai fait installer Percona 5.5 et j'essaie de passer à 5.6, mais je rencontre des problèmes inattendus et je suis coincé sur la façon de les résoudre.

J'ai suivi les instructions sur http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html

Et supprimé les packages 5.5, puis exécuté la commande suivante pour mettre à niveau:

yum install Percona-Server-server-56 Percona-Server-client-56

Les erreurs que j'ai reçues sont:

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

J'ai tout essayé de réinstaller openssl et openssl-devel qui est installé correctement mais cela ne fonctionne toujours pas. Des idées?

J'utilise 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 [/]#
user2643870
la source
CentOS appelle le package dont vous avez besoin "openssl-libs"
Bandrami
Merci beaucoup. J'ai regardé autour de moi mais je n'ai trouvé aucun pour CentOS 6.4. Savez-vous où chercher?
user2643870

Réponses:

14

La cause première de ce problème est que Red Hat a cassé la compatibilité binaire de leurs packages OpenSSL entre 6.4 et 6.5, ce qu'ils ont promis de ne pas faire .

La résolution de ce problème est simple, mais en fonction des applications que vous avez déployées, vous risquez de crier après les fournisseurs d'applications. Assurez-vous de réserver la majeure partie de votre colère à votre représentant Red Hat (si vous avez RHEL).


Cause

Red Hat a mis à niveau la version d'OpenSSL dans EL6 de 1.0.0 à 1.0.1 dans la mise à jour 6.5 , afin de résoudre une demande de fonctionnalité vieille de plusieurs années pour ajouter la prise en charge de la cryptographie à courbe elliptique. Ce paquet n'est plus compatible binaire et les programmes qui ont été construits avec OpenSSL 1.0.0 doivent être reconstruits à partir de la source contre 1.0.1.

À moins que vous n'installiez des applications tierces, bien sûr, ce que presque tout le monde fait. Celles-ci doivent également être recompilées, et à ce stade, la plupart des tiers l'ont fait et ont construit de nouveaux packages par rapport à 6.5. Ce sont ces colis que les tiers expédient généralement aujourd'hui.

Résolution

Identifiez tous les packages tiers concernés et contactez les fournisseurs de packages tiers pour les mises à jour. Une fois les mises à jour disponibles pour tous les packages, vous pouvez mettre à jour votre système vers la version 6.5 en toute sécurité, en installant les mises à jour des packages tiers en même temps, ce qui terminera la résolution.

Pour les packages installés via le gestionnaire de packages et les référentiels yum, cela est trivial; simplement essayer de mettre à niveau et être en mesure de le faire sans problèmes de dépendance signifie que les packages sont prêts.

Pour les packages installés manuellement, vous devrez les vérifier vous-même et appliquer les mises à jour fournies par les fournisseurs. Vous devez également faire pression sur ces fournisseurs pour qu'ils fournissent des packages RPM et des référentiels yum appropriés dans ces cas.

La plupart des utilisateurs peuvent mettre à jour vers 6.5 avec une commande telle que:

yum --disableexcludes=all --obsoletes update

Les utilisateurs RHEL qui ont défini une version mineure spécifique doivent d'abord définir 6.5 comme cible de publication avant d'exécuter la mise à jour ci-dessus:

subscription-manager release --set=6.5

À ce stade, vous devriez pouvoir installer le ou les packages tiers que vous tentiez d'installer.


Autres issues

Les utilisateurs de CentOS et d'autres clones RHEL sur certains VPS ou fournisseurs de cloud peuvent constater qu'ils ne peuvent pas mettre à jour vers 6.5. La yumcommande indiquera qu'aucun package n'est marqué pour la mise à jour. Jusqu'à présent, j'ai vu cela sur Windows Azure et certains fournisseurs VPS bas de gamme.

Dans ces cas, le fournisseur de l'image CentOS en cours d'utilisation a été modifié /etc/yum.repos.d/CentOS-Base.repodans l'image pour pointer vers des référentiels autres que les miroirs CentOS officiels.

Cela peut être résolu soit en modifiant manuellement le fichier repo pour restaurer les miroirs CentOS officiels, soit en localisant le centos-releaseRPM officiel sur un miroir CentOS et en le réinstallant. Par exemple (cette URL n'est valable qu'aujourd'hui et peut devenir obsolète plus tard; vérifiez d'abord votre miroir):

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

Vous pouvez installer PS 5.6 une fois que vous avez mis à niveau openssl vers openssl-1.0.1e-15.el6.x86_64.rpm

Pour la version 6.4, nous (je travaille pour Percona) avons également des packages personnalisés disponibles: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

Roel Van de Paar
la source
Petite mise à jour, le lien ci-dessus a été supprimé, nous (je travaille pour Percona) aurons bientôt des packages disponibles qui fonctionneront sur toutes les versions de Centos 6.x, y compris Centos 6.4
Roel Van de Paar
J'ai besoin de cette version :(
Beto Castillo
J'ai également besoin de cela, veuillez nous en informer dès que possible, merci!
Herson