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

图片[1]-import tensorflow 报错,CentOS 升级 glibc-唐朝资源网

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

图片[2]-import tensorflow 报错,CentOS 升级 glibc-唐朝资源网

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

图片[3]-import tensorflow 报错,CentOS 升级 glibc-唐朝资源网

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

图片[4]-import tensorflow 报错,CentOS 升级 glibc-唐朝资源网

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 版本太新或太旧(glibc 为低版本)

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

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

# 升级完成了,但是还是不行。我已更改为 7、8 个版本,但它不起作用。要么安装不成功,要么提示分段错误,要么软链接切换有问题。

# 6.x glibc 版本是 2.12,7.x glibc 版本是 2.17

# 最后我切换了系统,使用 C7 或 !真烦人

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容