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

你可能感兴趣的:(Linus,linux,python,centos)