Instalowanie pakietu aplikacji innej firmy w CentOS 6.4 kończy się niepowodzeniem z powodu brakujących zależności libcrypto.so.10 i libssl.so.10

16

To jest pytanie kanoniczne dotyczące problemów ze zgodnością binarną OpenSSL między Red Hat Enterprise Linux (i jego pochodnymi) 6.4 i 6.5.

Ten problem dotyczy szerokiej gamy pakietów stron trzecich, nie tylko tych wymienionych w pierwotnym pytaniu.

Mam zainstalowaną Percona 5.5 i staram się zaktualizować do wersji 5.6, ale napotykam nieoczekiwane problemy i utknąłem w sposobie ich rozwiązania.

Postępowałem zgodnie z instrukcjami na stronie http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html

I usunąłem pakiety 5.5, a następnie uruchomiłem następujące polecenie, aby zaktualizować:

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

Błędy, które otrzymałem, to:

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

Próbowałem wszystkiego od ponownej instalacji openssl i openssl-devel, który jest zainstalowany poprawnie, ale nadal nie działa. Jakieś pomysły?

Korzystam z 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 [/]#
użytkownik2643870
źródło
CentOS nazywa pakiet, którego potrzebujesz, „openssl-libs”
Bandrami,
Dziękuję Ci bardzo. Rozejrzałem się, ale nie znalazłem żadnego dla CentOS 6.4. Czy wiesz, gdzie szukać?
user2643870,

Odpowiedzi:

14

Główną przyczyną tego problemu jest to, że Red Hat złamał binarną kompatybilność swoich pakietów OpenSSL między 6,4 a 6,5, co obiecali, że tego nie zrobią .

Rozwiązanie tego problemu jest proste, ale w zależności od aplikacji, które zostały wdrożone, może wymagać trochę krzyku u dostawców aplikacji. Pamiętaj, aby zarezerwować większość swojego gniewu na przedstawiciela Red Hat (jeśli masz RHEL).


Przyczyna

Red Hat zaktualizował wersję OpenSSL w EL6 z 1.0.0 do 1.0.1 w aktualizacji 6.5 , aby rozwiązać wieloletnie żądanie funkcji, aby dodać obsługę kryptograhpy krzywej eliptycznej. Ten pakiet nie jest już kompatybilny binarnie, a programy zbudowane na OpenSSL 1.0.0 muszą zostać przebudowane ze źródła na 1.0.1.

Oczywiście, chyba że instalujesz aplikacje innych firm, co robi prawie każdy. Trzeba je też ponownie skompilować iw tym momencie większość stron trzecich zrobiła to i zbudowała nowe pakiety dla wersji 6.5. To właśnie te paczki są obecnie wysyłane przez strony trzecie.

Rozkład

Zidentyfikuj wszystkie dotknięte pakiety stron trzecich i skontaktuj się z dostawcami pakietów stron trzecich w celu uzyskania aktualizacji. Gdy aktualizacje będą dostępne dla wszystkich pakietów, możesz bezpiecznie zaktualizować system do wersji 6.5, instalując aktualizacje pakietów innych firm w tym samym czasie, co zakończy proces rozwiązywania.

W przypadku pakietów instalowanych za pomocą menedżera pakietów i repozytoriów yum jest to trywialne; po prostu próba aktualizacji i możliwość zrobienia tego bez problemów z zależnością oznacza, że ​​pakiety są gotowe.

W przypadku pakietów instalowanych ręcznie należy je sprawdzić samodzielnie i zastosować wszelkie aktualizacje dostarczone przez dostawców. Powinieneś również naciskać na tych dostawców, aby w takich przypadkach dostarczali odpowiednie pakiety RPM i repozytoria yum.

Większość użytkowników może aktualizować do wersji 6.5 za pomocą polecenia, takiego jak:

yum --disableexcludes=all --obsoletes update

Użytkownicy RHEL, którzy ustawili określoną mniejszą wersję, muszą najpierw ustawić 6.5 jako cel wydania przed uruchomieniem powyższej aktualizacji:

subscription-manager release --set=6.5

W tym momencie powinieneś być w stanie zainstalować pakiety stron trzecich, które próbujesz zainstalować.


Inne sprawy

Użytkownicy CentOS i innych klonów RHEL na niektórych dostawcach usług VPS lub w chmurze mogą stwierdzić, że nie mogą dokonać aktualizacji do wersji 6.5. yumKomenda będzie stwierdzić, że żadne pakiety zaznaczono aktualizacji. Do tej pory widziałem to na Windows Azure i niektórych słabszych dostawcach VPS.

W takich przypadkach dostawca używanego obrazu CentOS zmodyfikował /etc/yum.repos.d/CentOS-Base.repoobraz, aby wskazywał na repozytoria inne niż oficjalne kopie lustrzane CentOS.

Można to rozwiązać poprzez ręczną edycję pliku repo w celu przywrócenia oficjalnych kopii lustrzanych CentOS lub poprzez zlokalizowanie oficjalnej centos-releaseRPM na kopii lustrzanej CentOS i ponowną instalację. Na przykład (ten adres URL jest dziś aktualny i może później przestać być aktualny; najpierw sprawdź swoje lustro):

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
źródło
5

Możesz zainstalować PS 5.6 po aktualizacji openssl do openssl-1.0.1e-15.el6.x86_64.rpm

W przypadku wersji 6.4 mamy (pracuję dla Percony) również niektóre niestandardowe pakiety dostępne: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/

Roel Van de Paar
źródło
Mała aktualizacja, powyższy link został usunięty, my (pracuję dla Percon) wkrótce będziemy mieć dostępne pakiety, które będą działać na wszystkich wydaniach Centos 6.x, w tym Centos 6.4
Roel Van de Paar
Potrzebuję tego wydania :(
Beto Castillo
Potrzebuję również tego, daj nam znać, kiedy będzie dostępny, dzięki!
Herson