修复replace的OpenSSL安装

我以前用openssl10replace了我的centos中的openssl,使用类似下面的指令 :

rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/... ...x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm yum install yum-plugin-replace # Edit /etc/yum.repos.d/ius-archive.repo and # enable the ius-archive repo by changing enabled=0 to enabled=1. yum replace openssl --replace-with openssl10 

然后,当我做一般的yum update我得到错误,因为openssl,所以而是我做的:

 yum update -x openssl -x postfix 

这似乎工作正常,但实际上,我不能再通过SSH重新连接到框:

 me@local $ ssh -S none root@the_server ssh_exchange_identification: Connection closed by remote host 

任何想法如何从这种情况下恢复?

编辑:当我在服务器上运行sshd (我仍然有一个打开的连接),我得到以下错误:

 ssh: relocation error: ssh: symbol SSLeay_version, version OPENSSL_1.0.1 not defined in file libcrypto.so.10 with link time reference 

使用IUS存储库时,使用openssl10replaceopenssl ,然后尝试升级到CentOS 6.5,出现了一些问题。

基本上你所要做的就是回到股票openssl – 现在在1.0.1版本上:

 yum replace openssl10 --replace-with openssl 

现在使用openssl10是不必要的,不受支持。
这也是为什么它只在档案库中可用。

欲了解更多信息,请参阅: https : //lists.launchpad.net/ius-community/msg00807.html和https://bugs.launchpad.net/ius/+bug/1034961/comments/60

应该首先尝试@faker的回答,但如果这样做不起作用,我会在rpm.org上find以下说明

如果你想在安全的方面,也下载百胜的rpms和所有的依赖

(replace为适合您的安装的确切一个)

 wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-<version>.rpm wget http://mirror.centos.org/centos/6/os/x86_64/Packages/openssl-devel-<version>.rpm rpm -i openssl-* file /usr/lib64/libcrypto.so.1.0.1e from install of openssl-1.0.1e-16.el6_5.4.x86_64 conflicts with file from package openssl10-libs-1.0.1e-1.ius.el6.x86_64 .... lots more lines 

现在以这种方式备份所有这些冲突的文件,如果出现错误,可以将它们恢复到正确的文件夹。

最后,你可以跳跃,做:

 rpm -iv --replacepkgs --replacefiles openssl-* 

如果一切顺利yum update应该工作。

编辑:也擦除软件包,使他们不会冲突未来的更新:

 rpm -qa |grep ius ... lists packages rpm -e openssl10-libs-1.0.1e-1.ius.el6.x86_64 rpm -e openssl10-devel-1.0.1e-1.ius.el6.x86_64 

更容易解决上述问题

 yum update openssl openssl-devel