##背景:centos6.5 nimimal

  上次为了安装zabbix,安装完之后,发现发送不了邮件,查看官网,说必须依赖于curl7.20以上,然后就把原来的curl7.19的升级成7.53.1版本。

  结果悲剧了,yum不能用了,报错python2.7版本问题。但是不是python本身的问题,因为刚升级完libcurl跟curl就出现的问题,检查原因,问题就出来了升级libcurl同时吧libcurl.so.4库升级了,从libcurl.so.4.1.1升级到了libcurl.so.4.1.1。然后手动从别的服务器拷贝了libcurl.so.4.1.1将/usr/lib/libcurl.so.4软链接强制指向了libcurl.so.4.1.1,命令是ln -sf libcurl.so.4.1.1 libcurl.so.4。yum恢复,终于yum能用了。

  但是问题没有根本得到解决,终于,今天在用到curl的时候,发现curl不能访问https协议的网站。报错:curl: (2) Failed initialization

  没办法,只好想办法将curl以及libcurl删除重装。查了好久yum怎么样从高版本降低版本都没有得到结果,没办法,为了还原当时安装的时候场景,装了一台虚拟机验证。

  在升级curl以及libcurl的时候,下载了如下安装包

   Downloading Packages:

    (1/6): c-ares-1.13.0-3.0.cf.rhel6.x86_64.rpm | 97 kB 00:02
    (2/6): curl-7.57.0-1.0.cf.rhel6.x86_64.rpm | 494 kB 00:13
    (3/6): libcurl-7.57.0-1.0.cf.rhel6.x86_64.rpm | 427 kB 00:14
    (4/6): libmetalink-0.1.3-4.rhel6.x86_64.rpm | 24 kB 00:00
    (5/6): libnghttp2-1.6.0-1.el6.1.x86_64.rpm | 56 kB 00:00
    (6/6): libssh2-1.8.0-5.0.cf.rhel6.x86_64.rpm

  并且对安装包进行了安装

    Installing : c-ares-1.13.0-3.0.cf.rhel6.x86_64 1/9 

    Updating : libssh2-1.8.0-5.0.cf.rhel6.x86_64 2/9
    Installing : libmetalink-0.1.3-4.rhel6.x86_64 3/9
    Installing : libnghttp2-1.6.0-1.el6.1.x86_64 4/9
    Updating : libcurl-7.57.0-1.0.cf.rhel6.x86_64 5/9
    Updating : curl-7.57.0-1.0.cf.rhel6.x86_64 6/9
    Cleanup : curl-7.19.7-53.el6_9.x86_64 7/9
    Cleanup : libcurl-7.19.7-53.el6_9.x86_64 8/9
    Cleanup : libssh2-1.4.2-1.el6.x86_64 9/9
    Verifying : libnghttp2-1.6.0-1.el6.1.x86_64 1/9
    Verifying : libmetalink-0.1.3-4.rhel6.x86_64 2/9
    Verifying : libssh2-1.8.0-5.0.cf.rhel6.x86_64 3/9
    Verifying : libcurl-7.57.0-1.0.cf.rhel6.x86_64 4/9
    Verifying : curl-7.57.0-1.0.cf.rhel6.x86_64 5/9
    Verifying : c-ares-1.13.0-3.0.cf.rhel6.x86_64 6/9
    Verifying : libssh2-1.4.2-1.el6.x86_64 7/9
    Verifying : libcurl-7.19.7-53.el6_9.x86_64 8/9
    Verifying : curl-7.19.7-53.el6_9.x86_64

 

  还原了场景之后,知道安装了哪些包,升级了哪些包,所以打算强制删除高版本的安装包(不能直接yum remove curl,会报错,别的软件依赖,不能卸载,所以必须强制卸载rpm -e --nodeps):

    rpm -e --nodeps curl,rpm -e --nodeps libcurl,rpm -e --nodeps libssh2-1.8.0-5.0.cf.rhel6.x86_64, rpm -e c-ares-1.13.0-3.0.cf.rhel6.x86_64,rpm -e libmetalink-0.1.3-4.rhel6.x86_64,rpm -e libnghttp2-1.6.0-1.el6.1.x86_64

    然后从centos6.5 nimimal安装光盘中找到了被清除了的三个安装包进行手动安装:rpm -ivh rpm -ivh curl-7.19.7-37.el6_4.x86_64.rpm ....

 

    由此来恢复curl,libcurl的低版本

    

    原创,转载需说明出处!!