`GLIBC_2.23‘ not found问题解决

`GLIBC_2.23’ not found问题解决

在部署TensorFlow的时候报错 ImportError: /lib64/libm.so.6: version `GLIBC_2.23’ not found 更新GLIBC为高危操作,建议找不重要的服务器尝试

1.查看Linus系统glibc库版本:

    检查版本
strings /lib64/libc.so.6 |grep GLIBC_
    查看结果,发现确实没有GLIBC_2.23:
GLIBC_2.18
GLIBC_2.15
GLIBC_2.14
xdr_uint32_t@GLIBC_2.2.5
step@GLIBC_2.2.5
GLIBC_2.11
xdr_opaque@GLIBC_2.2.5
authnone_create@GLIBC_2.2.5
GLIBC_2.16
GLIBC_2.10
pthread_cond_init@@GLIBC_2.3.2
GLIBC_2.17
xdr_void@GLIBC_2.2.5
xdecrypt@GLIBC_2.2.5
getprotobyname_r@@GLIBC_2.2.5
GLIBC_2.12
GLIBC_2.13

2.更新GLIBC

以下指令需要一行行执行
    下载源代码压缩包:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz
    解压:
tar -zxvf  glibc-2.23.tar.gz
    新建文件夹并配置:
mkdir glibc-2.23-build

cd glibc-2.23-build

# 以下为配置
../glibc-2.23/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    编译并安装:
# 编译 
make
# 安装
make install

注:make可以换成make -j n,n为服务器的核数,作用是开启n个线程一起编译,提高效率

    如果make install报错:
make[2]: *** [/root/glibc-2.23/glibc-build/math/stubs] Error 127
make[2]: Leaving directory `/root/glibc-2.23/math
make[1]: *** [math/subdir_install] Error 2
make[1]: Leaving directory `/root/glibc-2.23
make: *** [install] Error 2
    解决办法(开一个新的窗口执行):
cd /lib64

ln -sf libm-2.23.so libm.so.6
注:有些文章推荐用: unlink libm.so.6 ln -s libm-2.23.so libm.so.6 但是我在执行完 unlink libm.so.6 ln -s libm-2.23.so libm.so.6 后,造成系统崩溃,造成大部分linus命令都无法成功执行,后来直接无法连接上linus服务器; 在重装系统后使用 **ln -sf libm-2.23.so libm.so.6 **成功安装 ln -s 是建立软连接 ln -f是强行建立文件或目录的连接,不论文件或目录是否存在
    最后再次回到原来的窗口执行
make install
    执行结果:
Your new glibc installation seems to be ok.
make[1]: Leaving directory `/root/glibc-2.23

3.验证:

ldd --version
    验证结果:
ldd (GNU libc) 2.23
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
    glibc库成功升级!
经验分享 程序员 微信小程序 职场和发展