zoukankan      html  css  js  c++  java
  • 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 !真闹心

  • 相关阅读:
    Mvc3绑定下拉菜单
    M vc3+ExtJs 数据格式转换(泛型集合转换为Json类型)
    python代码小实践之dorm_lab_changeIP
    2013网易互联网暑假实习笔试&面试
    python代码小实践之split_csv
    python代码小实践之data_structure_and_algorithm
    位运算
    weibo_json
    unsinged and (signed)
    01背包模板 开心的小明
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/7170922.html
Copyright © 2011-2022 走看看