在较低版本的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权限
准备好对应需要升级的zlib,放在当前目录下
创建当前版本副本
cp /lib64/libz.so.1.2.XXX /lib64/libz.so.1.2.XXX.ori
软链接重定向为备件文件
ln -snf /lib64/libz.so.1.2.XXX.ori /lib64/libz.so.1
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
软链接重定向为新文件(安装卸载后,原本文件已替换)
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