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 !真闹心