Linux(Red hat)无网离线安装TensorFlow

文件下载

首先,下载想要安装的版本,目前最新的是1.8.0 根据你的python版本下载对应的whl文件,下载连接:https://pypi.org/project/tensorflow/#files。也可以下载历史版本:https://pypi.org/project/tensorflow/#history

尝试安装

pip install xxxxxx.whl
会提示依赖的文件不存在。接着通过能上网的机子百度去下载对应版本号的文件继续安装。


 
 

经过一系列的下载之后,tensorflow 安装需要以下依赖文件,通通装上。


 
 

最终能够成功安装tensorflow 。
如果运行如下命令不报错的情况下,恭喜你,安装成功。

python
>>> import tensorflow as tf

如果linux 系统原先没有安装过高版本的gcc,一般都会提示如下错误

ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/dist- packages/tensorflow/python/_pywrap_tensorflow.so) 

`GLIBC_2.17' 没找到。
采用如下命令查看当前系统支持的glibc版本

[root@localhost glibc]# 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 

更新glibc版本,下载地址:http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
执行以下步骤安装glibc

[xxx]# tar -xf glibc-2.17.tar.gz
[xxx]# cd glibc-2.17
[xxx]# mkdir build
[xxx]# cd build
[xxx]# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin [xxx]# make -j 8 [xxx]# make install 

重新查看会发现,glibc的版本已经添加上去:

[root@localhost glibc]# 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 

查看映射:

[root@localhost glibc]# ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 May  7 16:31 /lib64/libc.so.6 -> libc-2.17.so 

此时,libc.so.6已经映射到了libc-2.17.so。如果不是要删除映射重新建立映射。

[xxx]# rm /lib64/libc.so.6
[xxx]# ln -s /lib64/libc-2.17.so /lib64/libc.so.6

这里需要注意的是,一旦/lib64/libc.so.6文件被删除ll,ls,ln 这些命令将无法使用。报如下错误:

error while loading shared libraries: libc.so.6: cannot open shared object file: 
No such file or directory
采用以下命令进行急救:
[xxx]# ldconfig 

继续尝试

>>> import tensorflow as tf

会报如下错误

ImportError: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found 

查看已有的版本

[xxx]# ll /usr/lib64/libstdc++.so.6
lrwxrwxrwx 1 root root 19 May  7 17:58 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13
[xxx]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6 
CXXABI_TM_1
CXXABI_FLOAT128

一般安装anaconda3 会有高版本的libstdc++.so.6存在。磁盘搜索

[xxx]# find / -name "libstdc++.so.*"
/root/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/root/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
/root/anaconda3/lib/libstdc++.so.6
/root/anaconda3/lib/libstdc++.so.6.0.24
/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6
/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6.0.24

复制对应的版本到/usr/lib64/目录下

cp /root/anaconda3/lib/libstdc++.so.6.0.24  /usr/lib64/

同样修改软连接关系

[xxx]# rm /usr/lib64/libstdc++.so.6
[xxx]# ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

这个问题也解决了,那能够成功导入吗?不要高兴的太早,有些同学可能会遇到如下问题:

>>>import tensorflow as tf
illegal instruction (core dumped)

各种查阅资料后发现官网上的安装方式和自家的CPU不匹配,需要从source安装。泪崩...
需要简单处理的同学可以尝试降低tensorflow的版本,如安装1.5.0版本,1.5.1同样会报illegal instruction (core dumped) 亲测。

 
 
参考资料:

glibc2.17安装: https://blog.csdn.net/wyl9527/article/details/78256066
linux文件删除急救:https://blog.csdn.net/xzx735/article/details/43227203
tensorflow 源码安装:https://blog.csdn.net/helei001/article/details/51285951
illegal instruction错误解决 https://blog.csdn.net/darklucky/article/details/79947048



作者:IT屌丝逆袭日记
链接:https://www.jianshu.com/p/36e547419c96
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/yiduobaozhiblog1/p/10096406.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值