use*_*870 16 mysql yum update percona
这是关于 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
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
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
Run Code Online (Sandbox Code Playgroud)
我已经尝试了从重新安装 openssl 和 openssl-devel 正确安装的所有方法,但它仍然无法正常工作。有任何想法吗?
我正在运行 CentOS 6.4:
root@server01 [/]# cat /proc/version
Linux version 2.6.32-279.5.2.el6.x86_64 (mockbuild@c6b10.bsys.dev.centos.org) (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 [/]#
Run Code Online (Sandbox Code Playgroud)
Mic*_*ton 14
此问题的根本原因是 Red Hat 在 6.4 和 6.5 之间破坏了其 OpenSSL 软件包的二进制兼容性,这是他们承诺不会做的事情。
解决这个问题很简单,但根据您可能部署的应用程序,可能需要对您的应用程序供应商大喊大叫。请务必为您的 Red Hat 代表保留大部分愤怒(如果您有 RHEL)。
Red Hat在 6.5 更新中将 EL6 中的 OpenSSL 版本从 1.0.0升级到 1.0.1,以解决多年以来添加椭圆曲线加密支持的功能请求。此包不再与二进制兼容,针对 OpenSSL 1.0.0 构建的程序必须从针对 1.0.1 的源代码重新构建。
当然,除非您安装第三方应用程序,否则几乎每个人都会这样做。那些也必须重新编译,此时大多数第三方已经这样做了,并针对 6.5 构建了新包。今天第三方通常运送的正是这些包裹。
确定所有受影响的第三方软件包并联系第三方软件包供应商以获取更新。一旦所有软件包的更新可用,您就可以安全地将系统更新到 6.5,同时安装第三方软件包更新,这将完成解决。
对于通过包管理器和 yum 存储库安装的包,这是微不足道的;简单地尝试升级并且能够在没有依赖性问题的情况下进行升级意味着软件包已准备就绪。
对于手动安装的软件包,您需要自己检查这些并应用供应商提供的任何更新。在这些情况下,您还应该迫使这些供应商提供适当的 RPM 包和 yum 存储库。
大多数用户可以使用如下命令更新到 6.5:
yum --disableexcludes=all --obsoletes update
Run Code Online (Sandbox Code Playgroud)
设置了特定次要版本的 RHEL 用户必须先将 6.5 设置为他们的发布目标,然后才能运行上述更新:
subscription-manager release --set=6.5
Run Code Online (Sandbox Code Playgroud)
此时,您应该能够安装您尝试安装的第三方软件包。
CentOS 和其他 RHEL 克隆在某些 VPS 或云提供商上的用户可能会发现他们无法更新到 6.5。该yum命令将声明没有包被标记为更新。到目前为止,我已经在 Windows Azure 和一些低端 VPS 提供商上看到了这一点。
在这些情况下,所使用的 CentOS 映像的提供者已在映像中修改/etc/yum.repos.d/CentOS-Base.repo为指向除官方 CentOS 镜像以外的存储库。
这可以通过手动编辑 repo 文件来恢复 CentOS 官方镜像来解决,或者通过centos-release在 CentOS 镜像上找到官方RPM 并重新安装它来解决。例如(这个网址只在今天有效,以后可能会过时;先检查你的镜像):
yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm
Run Code Online (Sandbox Code Playgroud)
将 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/