import tensorflow 报错,CentOS 升级 glibc


问题描述:

in[0]: import tensorflow as tf

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

# 系统默认 glibc 所支持的版本太低

解决方法:

1、检查当前 glibc 版本

shell > 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_PRIVATE

shell > ll /lib64/libc.so.6 
lrwxrwxrwx. 1 root root 12 7月  14 01:57 /lib64/libc.so.6 -> libc-2.12.so

# 现有 glibc 支持的最高版本为 2.12,我们需要至少 2.15

2、下载所需 glibc ( Linux 系统及指令都依赖该库,损坏将导致操作系统无法工作 )

shell > wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.15.tar.gz
shell > tar zxf glibc-2.15.tar.gz
shell > mkdir glibc-2.15/build; cd glibc-2.15/build
shell > ../configure --prefix=/usr/local/glibc-2.15 && make && make install

# 需要几分钟时间、耐心等待

3、替换软链接

shell > rm -rf /lib64/libc.so.6
shell > ln -s /usr/local/glibc-2.15/lib/libc.so.6 /lib64/
ln: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

# 你会发现,除 cd 外的指令几乎不能使用了,这是因为他们都依赖于 glibc !

shell > LD_PRELOAD=/usr/local/glibc-2.15/lib/libc.so.6 ln -s /usr/local/glibc-2.15/lib/libc.so.6 /lib64/

shell > 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_PRIVATE

shell > ll /lib64/libc.so.6 
lrwxrwxrwx. 1 root root 35 Jul 14 14:02 /lib64/libc.so.6 -> /usr/local/glibc-2.15/lib/libc.so.6

# 软链接已经替换,且系统指令也已经恢复

shell > LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6

# 如升级不成功,使用上面语句恢复

报错管理:

1、glibc 版本太新或 autoconf 版本太旧 ( glibc 换低版本 )

configure: error: 
*** These critical programs are missing or too old: as ld compiler
*** Check the INSTALL file for required versions.

……………………………………………………………………………………………………………………………………………………………………………………

# 升是升完了,但是不能用,我换了7、8个版本,都不行。要么安装不成功、要么提示段错误、要么软链接切换有问题。

# CentOS 6.x glibc 版本为 2.12,CentOS 7.x glibc 版本为 2.17

# 最后我换系统了,用 C7 或 Ubuntu !真闹心

原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/7170922.html