【TensorFlow】完美解决使用 TensorFlow 时报错 ImportError: /lib64/libc.so.6: version `GLIBC_2.XX' not found

时间:2021-10-27 15:30:26

安装最新的TensorFlow(>=1.4.0)后,载入TensorFlow时提示Glibc版本过低,需要升级到指定版本。

该教程课升级到任意版本的Glibc

代码:

import tensorflow as tf

报错:

ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/python3.6/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow.so)

解决方法:



下载:

https://ftp.gnu.org/gnu/glibc/ 里选择下载 对应版本,如:glibc-2.17.tar.gz。
# wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz


解压。
#tar -zxvf glibc-2.17.tar.gz


进入安装目录:
# cd glibc-2.17


创建编译安装目录:
# mkdir build


配置:
# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin


编译安装:
# make 
# make install


到这一步如果出现ls目录不能使用,则/lib64/libc.so.6未更新。
需要重建软连接,但是先解决命令不能使用问题。


命令恢复:
# LD_PRELOAD=/lib64/libc-2.17.so


设置软连接,先删除旧的:
# rm /lib64/libc.so.6
# ln -s /lib64/libc-2.17.so /lib64/libc.so.6


查看glib详情,执行:
# strings /lib64/libc.so.6 |grep GLIBC_
看到

GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

可以看到支持的最高版本。


再执行:
# ldd --version
看到
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
由 Roland McGrath 和 Ulrich Drepper 编写。


glib成功升级到指定版本。


升级完毕!