CentOS7升级GLIBC_2.17到GLIBC_2.31

 

因为需要在linux上调用opencv的4.3的.so,此版本要求linux的glibc版本最低为GLIBC_2.27,因此需要升级。

注意:Ubuntu 18.4版本自带的GLIBC就是2.27的。

第一步,当然是升级gcc到9.3,升级make到4.3

解压,执行../configure --prefix=/usr && make && make install

第二步,安装python3.4

GLIBC_2.31需要python3.4,CentOS7自带的python是2.7,不用删除,直接安装python3.4即可

从EPEL仓库安装

最新的EPEL 7仓库提供了Python3(python 3.4)的安装源,如果你使用CentOS7或更新的版本的系统你也可以按照下面的步骤很轻松的从EPEL仓库安装。

安装最新版本的EPEL

sudo yum install epel-release

用yum安装python 3.4:

sudo yum install python34

注意:上面的安装方法并未安装pip和setuptools,如果你要安装这两个库可以使用下面的命令:

$ curl -O https://bootstrap.pypa.io/pip/3.4/get-pip.py
$ sudo /usr/bin/python3.4 get-pip.py

最后创建一个软链接

sudo ln -s /usr/bin/python3.4 /usr/bin/python3

至此,GLIBC_2.31编译源码时既可以识别出python3

 第三步,升级前需查看当前环境的glibc是否存在符合taos3的版本,若存在则跳过升级,此文档假设glibc当前最高的版本为2.17

检查环境,可能需要安装如下依赖库:

yum install bison -y
yum -y install wget bzip2 gcc gcc-c++ glibc-headers

操作如下:

 下载:

wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz

查看安装编译依赖:

cd glibc-2.31

cat INSTALL | grep -E "newer|later" | grep "*"

 

 编译:

mkdir build
 
# 指定安装到具体的目录下,此示例表示将make安装到/opt下
cd build/
../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
 
# 编译安装
make -j4  # 此处时间较长
make install
# 解决新启动远程终端时报一个WARNING
make localedata/install-locales

 

注意:

1.升级glibc存在系统崩溃风险!!!升级前尽可能在个人环境下进行反复测试,确保无问题后再升级生产环境!

2.当glibc版本为2.17时千万不要直接升级到2.25!!!2.17与2.25直接差4个版本(2.18、2.22、2.23、2.24),经反复测试确认发现直接升级到2.25时不会自动安装缺失的版本,而2.25又对之前的版本有依赖(个人猜测),强行安装2.25不但安装失败,且会造成系统崩溃、异常(比如无法使用ls、cp等命令,无法进行远程连接)。
3.经过本人亲测,从2.17直接升到2.31是没有问题的。直接通过!

故障处理

故障现象:假设在glibc2.17时直接升级到glibc2.25,将会出现操作系统崩溃的情况,如:大部分命令不可用、无法远程登录、yum报错等。说明:出现此类问题时千万不要重启服务器,不要关闭当前的终端!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章