centos7将zlib1.2.7升级zlib1.2.11

在centos7系统中更新python2到python3文章中会遇到zlib版本较旧。提示升级到新版1.2.11的问题。以下是升级centos中的zlib.

  1. 首先查看一下系统中的zlib版本。
    yum info zlib
    在这里插入图片描述
    如果查看到你的zlib版本为1.2.7,根据需求可以更新到1.2.11.
  2. 使用linux以下命令一气可成:
wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11

cd zlib-1.2.11

./configure --libdir=/lib64/

在这里插入图片描述

注意:这里我们没有加 --prefix=/usr/local/zlib 预安装目录,只加了 库文件的生成路径 --libdir=/lib64/

  1. Linux默认的一些关于目录的软连接:
    ls -ld /var/*
    在这里插入图片描述
    编译:make
    在这里插入图片描述
    安装:make install
    在这里插入图片描述

注意:从输出可以看出,make install 这一步实际上是对编译生成zlib相关文件的一个分发,也就是将编译生成文件拷贝到相关路径,我们在做离线升级安装包的时候,直接拷贝这些命令加到脚本就可以了!

  1. 卸载原zlib包,这样就完成zlib的升级
#rpm -qa | grep zlib | xargs  rpm -e --nodeps
#rm -f /lib64/libz.so.1.2.7

注:卸载zlib,顺序很重要,如果卸早,上一步make就会失败,提示:zlib的库文件,libz.so*没有,无法完成编译!
zlib这个基础库相当重要,一旦玩崩了,会导致跟多基本命令无法使用,服务器重启起不来!

  1. 刷新系统库文件
    ldconfig
    ll /lib64/libz.*
    在这里插入图片描述
    从上可以看出,编译时带 --libdir=/lib64/ 新的库文件 直接就放置到了 /lib64/ 目录下了!
  2. 如果只是本机安装到此结束了。如果你要升级多台机器上的zlib。以下是制作离线升级安装包方法
#  vim zlib-1.2.11/zlibUpgrade.sh

##################################################

#!/bin/bash

parent_path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P )

cd "$parent_path"

rm -f /lib64//libz.a

cp libz.a /lib64/

chmod 644 /lib64//libz.a

cp libz.so.1.2.11 /lib64/

chmod 755 /lib64//libz.so.1.2.11

rm -f /usr/local/share/man/man3/zlib.3

cp zlib.3 /usr/local/share/man/man3

chmod 644 /usr/local/share/man/man3/zlib.3

rm -f /lib64//pkgconfig/zlib.pc

cp zlib.pc /lib64//pkgconfig

chmod 644 /lib64//pkgconfig/zlib.pc

rm -f /usr/local/include/zlib.h /usr/local/include/zconf.h

cp zlib.h zconf.h /usr/local/include

chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h

rpm -qa | grep zlib | xargs  rpm -e --nodeps

rm -rf /lib64/libz.so.1.2.7

ldconfig

ls -l  /lib64/libz*
######################################################

在这里插入图片描述
chmod +x zlib-1.2.11/zlibUpgrade.sh
tar -zcf zlib-1.2.11Upgrade.tar.gz zlib-1.2.11
在这里插入图片描述
如果需要批量升级其他机器,没有必要在每台机器上都编译安装一遍,将zlib-1.2.11Upgrade.tar.gz拷贝过去,解压执行脚本即可完成升级。

你也可以将其做成ansible playbook,用ansible完成批量升级安装。

  1. 在别的机器使用刚制作的离线包升级zlib
#  tar -zxf  zlib-1.2.11Upgrade.tar.gz

# cd zlib-1.2.11

# sh -x zlibUpgrade.sh

# ll /lib64/libz.*

在这里插入图片描述

如果你喜欢本博文章请点赞收藏。

发布了18 篇原创文章 · 获赞 31 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/alvinlyb/article/details/103755600