`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库成功升级!