由于缺少依赖项libcrypto.so.10和libssl.so.10,在CentOS 6.4上安装第三方应用程序包失败。


16

这是关于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 (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 [/]#

CentOS称您需要的软件包“ openssl-libs”
Bandrami 2013年

非常感谢你。我环顾四周,但找不到CentOS 6.4的任何东西。您知道在哪里看吗?
user2643870 2013年

Answers:


14

造成此问题的根本原因是Red Hat破坏了其OpenSSL软件包在6.4和6.5之间的二进制兼容性,他们承诺不会这样做

解决此问题很简单,但是根据您可能已部署的应用程序,您可能会对应用程序供应商大喊大叫。确保将大部分时间都留给Red Hat代表使用(如果您有RHEL)。


原因

Red Hat 在6.5更新中将EL6中的OpenSSL版本从1.0.0升级到1.0.1,以解决具有多年历史的功能请求,以添加椭圆曲线加密支持。该软件包不再与二进制兼容,并且必须针对1.0.1从源重新构建针对OpenSSL 1.0.0构建的程序。

当然,除非您要安装第三方应用程序,否则几乎每个人都会这样做。那些也必须重新编译,这时大多数第三方都这样做了,并针对6.5构建了新软件包。第三方通常今天正是运送这些包装。

解析度

确定所有受影响的第三方程序包,并与第三方程序包供应商联系以获取更新。一旦所有软件包都有更新,您就可以安全地将系统更新到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镜像之外的存储库。

可以通过手动编辑回购文件以恢复官方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

5

将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/


小更新,上面的链接已删除,我们(我为Percona工作)很快将提供可在所有Centos 6.x发行版上使用的软件包,包括Centos 6.4
Roel Van de Paar 2014年

我需要这个版本:(
Beto Castillo

我也需要这个,请在​​有空时告诉我们,谢谢!
赫森2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.