Linux升级zlib版本

Linux升级zlib版本

在较低版本的Linux安装服务或插件的时候,可能会遇到因zlib版本不匹配导致安装无法顺利进行,需要对zlib进行升级。

因为zlib会被内核中服务依赖,粗暴升级可能会使ssh,scp等无法使用,导致无法远程连接服务器。

特记录正确升级方式。

基本信息

zlib主要文件(zlib为包名,libz为文件名)

/lib64/libz.so.1.2.X
/lib64/libz.so.1

其中,libz.so.1为软链接

因为服务依赖的关系,我们不好直接对文件进行更替操作。过程中需要使用rpm进行包的安装,但rpm本身也依赖该zlib。所以整个修改过程中应保证软链接是有指向目标的。

zlib的rpm各个版本下载地址:http://rpm.pbone.net/results_limit_1_srodzaj_1_dl_40_field[]_1_field[]_2_search_zlib.html

升级步骤

整个过程都为root权限

  1. 准备好对应需要升级的zlib,放在当前目录下

  2. 创建当前版本副本

    cp /lib64/libz.so.1.2.XXX /lib64/libz.so.1.2.XXX.ori
    
  3. 软链接重定向为备件文件

    ln -snf /lib64/libz.so.1.2.XXX.ori /lib64/libz.so.1
    
  4. rpm删除历史版本,安装新版本

    # 查看目前版本
    yum list zlib
    ## yum list zlib |grep Installed -A1|grep -v Installed
    
    # 卸载zlib
    rpm -e --nodeps zlib
    
    # 本地安装新版本
    rpm -ivh ./zlib-1.2.XXX.x86_64.rpm
    
    # 查看新安装版本
    yum list zlib
    rpm -qa |grep zlib
    
  5. 软链接重定向为新文件(安装卸载后,原本文件已替换)

    ln -snf /lib64/libz.so.1.2.XXX /lib64/libz.so.1
    

注意点

rpm 对zlib包的安装卸载后,如无软链接指向备份文件,会导致SSH和yum,rpm等无法使用

zlib包的升级需要结合系统其他服务依赖情况,通常用于Linux6.3内的zlib1.2.3-27版本升级到zlib1.2.3-29

上一篇:解决错误/usr/bin/ld: cannot find -lz


下一篇:python: AttributeError: module ‘calendar‘ has no attribute ‘month‘