Die Installation eines Drittanbieter-Anwendungspakets unter CentOS 6.4 schlägt fehl, da die Abhängigkeiten libcrypto.so.10 und libssl.so.10 fehlen

16

Dies ist eine Canonical Question zu OpenSSL-Binärkompatibilitätsproblemen zwischen Red Hat Enterprise Linux (und seinen Derivaten) 6.4 und 6.5.

Dieses Problem betrifft eine Vielzahl von Paketen von Drittanbietern, nicht nur die in der ursprünglichen Frage aufgeführten.

Ich hatte Percona 5.5 installiert und versuche, auf 5.6 zu aktualisieren, aber ich stoße auf unerwartete Probleme und weiß nicht, wie ich sie beheben kann.

Ich habe die Anweisungen unter http://www.percona.com/doc/percona-server/5.6/upgrade_guide_55_56.html befolgt

Und entfernte die 5.5-Pakete und führte dann den folgenden Befehl zum Upgrade aus:

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

Die Fehler, die ich zurückerhalten habe, sind:

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

Ich habe alles von der Neuinstallation von openssl und openssl-devel ausprobiert, die korrekt installiert sind, aber immer noch nicht funktionieren. Irgendwelche Ideen?

Ich verwende 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
quelle
CentOS nennt das benötigte Paket "openssl-libs"
Bandrami
Vielen Dank. Ich habe mich umgesehen, konnte aber keine für CentOS 6.4 finden. Wussten Sie, wo Sie suchen müssen?
user2643870

Antworten:

14

Die Hauptursache für dieses Problem ist, dass Red Hat die Binärkompatibilität seiner OpenSSL-Pakete zwischen 6.4 und 6.5 gebrochen hat, was versprochen wurde .

Die Behebung dieses Problems ist unkompliziert. Abhängig von den Anwendungen, die Sie möglicherweise bereitgestellt haben, müssen Sie die Hersteller der Anwendungen möglicherweise beschimpfen. Stellen Sie sicher, dass Sie den größten Teil Ihres Zorns für Ihren Red Hat-Repräsentanten reservieren (wenn Sie RHEL haben).


Ursache

Red Hat hat die Version von OpenSSL in EL6 im 6.5-Update von 1.0.0 auf 1.0.1 aktualisiert , um eine jahrelange Funktionsanforderung zum Hinzufügen von Unterstützung für Kryptographie mit elliptischen Kurven zu lösen . Dieses Paket ist nicht mehr mit Binärdateien kompatibel. Programme, die mit OpenSSL 1.0.0 erstellt wurden, müssen aus dem Quellcode mit 1.0.1 neu erstellt werden.

Es sei denn, Sie installieren Anwendungen von Drittanbietern, was fast jeder tut. Auch diese müssen neu kompiliert werden, und zu diesem Zeitpunkt haben es die meisten Drittanbieter getan und neue Pakete gegen 6.5 erstellt. Diese Pakete werden heute in der Regel von Dritten versendet.

Auflösung

Identifizieren Sie alle betroffenen Pakete von Drittanbietern und wenden Sie sich an die Paketanbieter von Drittanbietern, um Aktualisierungen zu erhalten. Sobald Aktualisierungen für alle Pakete verfügbar sind, können Sie Ihr System sicher auf 6.5 aktualisieren und gleichzeitig die Aktualisierungen für Pakete von Drittanbietern installieren, wodurch die Lösung abgeschlossen wird.

Bei Paketen, die über den Paketmanager und YUM-Repositorys installiert werden, ist dies trivial. Ein einfacher Versuch, ein Upgrade durchzuführen und dies ohne Abhängigkeitsprobleme zu tun, bedeutet, dass die Pakete fertig sind.

Bei manuell installierten Paketen müssen Sie diese selbst überprüfen und die von den Anbietern bereitgestellten Updates anwenden. Sie sollten diese Anbieter auch unter Druck setzen, um in diesen Fällen die richtigen RPM-Pakete und Yum-Repositorys bereitzustellen.

Die meisten Benutzer können mit einem Befehl auf 6.5 aktualisieren, z.

yum --disableexcludes=all --obsoletes update

RHEL-Benutzer, die eine bestimmte Nebenversion festgelegt haben, müssen zuerst 6.5 als Versionsziel festlegen, bevor sie das obige Update ausführen können:

subscription-manager release --set=6.5

Zu diesem Zeitpunkt sollten Sie in der Lage sein, die Pakete von Drittanbietern zu installieren, die Sie installieren wollten.


Andere Probleme

Benutzer von CentOS und anderen RHEL-Klonen auf bestimmten VPS- oder Cloud-Anbietern können möglicherweise kein Update auf 6.5 durchführen. Der yumBefehl gibt an, dass keine Pakete zum Aktualisieren markiert sind. Bisher habe ich dies bei Windows Azure und einigen Low-End-VPS-Anbietern gesehen.

In diesen Fällen hat der Anbieter des verwendeten CentOS-Images /etc/yum.repos.d/CentOS-Base.repodas Image so geändert , dass es auf andere Repositorys als die offiziellen CentOS-Spiegel verweist.

Dies kann gelöst werden, indem entweder die Repo-Datei manuell bearbeitet wird, um die offiziellen CentOS-Spiegel wiederherzustellen, oder indem das offizielle centos-releaseRPM auf einem CentOS-Spiegel gefunden und erneut installiert wird. Zum Beispiel (diese URL ist heute nur noch gültig und kann später veraltet sein; überprüfen Sie zuerst Ihren Spiegel):

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
quelle
5

Sie können PS 5.6 nach dem Upgrade von openssl auf openssl-1.0.1e-15.el6.x86_64.rpm installieren

Für 6.4 haben wir (ich arbeite für Percona) auch einige maßgeschneiderte Pakete zur Verfügung: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

Roel Van de Paar
quelle
Kleines Update, der Link oben wurde entfernt, wir (ich arbeite für Percona) werden bald Pakete zur Verfügung haben, die auf allen Centos 6.x-Releases funktionieren, einschließlich Centos 6.4
Roel Van de Paar
Ich brauche diese Version :(
Beto Castillo
Ich brauche das auch, lass es uns wissen, wenn es verfügbar ist, danke!
Herson