이것은정식 질문Red Hat Enterprise Linux(및 그 파생 제품) 6.4와 6.5 간의 OpenSSL 바이너리 호환성 문제에 대해 설명합니다.
이 문제는 원래 질문에 나열된 패키지뿐만 아니라 다양한 타사 패키지에 적용됩니다.
Percona 5.5를 설치했고 5.6으로 업그레이드하려고 하는데 예상치 못한 문제가 발생하여 해결 방법을 찾지 못하고 있습니다.
나는 다음의 지시를 따랐다.http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html
5.5 패키지를 제거한 후 다음 명령을 실행하여 업그레이드했습니다.
yum install Percona-Server-server-56 Percona-Server-client-56
내가 받은 오류는 다음과 같습니다.
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
제대로 설치된 openssl 및 openssl-devel을 다시 설치하는 방법을 모두 시도했지만 여전히 작동하지 않습니다. 어떤 아이디어가 있나요?
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 [/]#
답변1
이 문제의 근본 원인은 Red Hat이 6.4와 6.5 사이에서 OpenSSL 패키지의 바이너리 호환성을 깨뜨렸다는 것입니다.그들은 그러지 않겠다고 약속했어요.
이 문제를 해결하는 것은 간단하지만 배포한 애플리케이션에 따라 애플리케이션 공급업체에 불만을 표시해야 할 수도 있습니다. Red Hat 담당자를 위해 대부분의 분노를 남겨두십시오(RHEL이 있는 경우).
원인
Red Hat은 EL6에서 OpenSSL 버전을 업그레이드했습니다.6.5 업데이트에서 1.0.0에서 1.0.1로, 해결하기 위해오래된 기능 요청타원 곡선 암호화 지원을 추가합니다. 이 패키지는 더 이상 바이너리와 호환되지 않으며 OpenSSL 1.0.0에 대해 빌드된 프로그램은 1.0.1에 대해 소스에서 다시 빌드해야 합니다.
물론 거의 모든 사람이 설치하는 타사 응용 프로그램을 설치하지 않는 한 말이죠. 이들 역시 다시 컴파일되어야 하며 현재 대부분의 제3자가 그렇게 했으며 6.5에 대해 새 패키지를 구축했습니다. 오늘날 제3자가 일반적으로 배송하는 것은 바로 이러한 패키지입니다.
해결
영향을 받는 모든 타사 패키지를 식별하고 타사 패키지 공급업체에 업데이트를 문의하세요. 모든 패키지에 대한 업데이트가 제공되면 시스템을 6.5로 안전하게 업데이트하고 동시에 타사 패키지 업데이트를 설치하면 문제 해결이 완료됩니다.
패키지 관리자와 yum 저장소를 통해 설치된 패키지의 경우 이는 사소한 일입니다. 단순히 업그레이드를 시도하고 종속성 문제 없이 업그레이드할 수 있다는 것은 패키지가 준비되었음을 의미합니다.
수동으로 설치된 패키지의 경우 이를 직접 확인하고 공급업체가 제공한 업데이트를 적용해야 합니다. 또한 이러한 경우에는 공급업체에 적절한 RPM 패키지와 Yum 저장소를 제공하도록 압력을 가해야 합니다.
대부분의 사용자는 다음과 같은 명령을 사용하여 6.5로 업데이트할 수 있습니다.
yum --disableexcludes=all --obsoletes update
특정 부 릴리스를 설정한 RHEL 사용자는 위 업데이트를 실행하기 전에 먼저 릴리스 대상으로 6.5를 설정해야 합니다.
subscription-manager release --set=6.5
이제 설치하려고 했던 타사 패키지를 설치할 수 있어야 합니다.
다른 문제
특정 VPS 또는 클라우드 공급자의 CentOS 및 기타 RHEL 클론 사용자는 6.5로 업데이트할 수 없다는 것을 알 수 있습니다. 이 yum
명령은 업데이트 대상으로 표시된 패키지가 없다고 명시합니다. 지금까지 나는 Windows Azure와 일부 저가형 VPS 공급자에서 이것을 보았습니다.
이러한 경우 사용 중인 CentOS 이미지 제공자가 /etc/yum.repos.d/CentOS-Base.repo
공식 CentOS 미러가 아닌 저장소를 가리키도록 이미지를 수정했습니다.
이 문제는 repo 파일을 수동으로 편집하여 공식 CentOS 미러를 복원하거나 centos-release
CentOS 미러에서 공식 RPM을 찾아 다시 설치하여 해결할 수 있습니다. 예를 들어(이 URL은 오늘만 유효하며 나중에 유효하지 않을 수 있습니다. 먼저 미러를 확인하세요):
yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm
답변2
openssl을 openssl-1.0.1e-15.el6.x86_64.rpm으로 업그레이드하면 PS 5.6을 설치할 수 있습니다.
6.4의 경우 우리(저는 Percona에서 근무)에서 사용할 수 있는 맞춤 제작 패키지도 있습니다. http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/