tensorflow安装调试总结(持续更新)
这段时间需要部署tensorflow到linux上,由于堡垒机不能连外网,所以pip、apt-get、wget、git统统不能用,然后就是各种调试了,下面整理了一些遇到的问题和解决方案,供大家参考(CentOS/Python3.4),有什么遗漏的问题还望大家补充。
1、Putty、XShell、SecureCRT、SSH Secure Shell Slient的优缺点 现在大多是用的xshell,因为xshell有一款个人免费的,还是中文界面,对于这种四级都是勉强过的,真心不错。 putty因为太小了,所以常常有很多功能不能满足。 securecrt在功能上跟xshell(XManager中文版网站)差不多,但是securecrt是英文版的还要收费,所以就果断抛弃了 SSH Secure Shell Slient,这款软件使用的不太多,一般使用最多的就是securecrt和xshell了,介于免费的原因,所以推荐使用xshell。
2、查看本机MAC cmd->ipconfig/all->物理地址
3、root身份登录 ssh root@XXX
4、安装gcc 首先需要安装gcc,如果可以联网,可以apt-get install build-essential或yum -y install gcc,如果不能就去这里下载:http://mirrors-usa.go-parts.com/gcc/releases/gcc-4.8.4/gcc-4.8.4.tar.gz 下载下来之后,执行: tar zxvf gcc-4.8.4.tar.gz cd gcc-4.8.4 ./contrib/download_prerequisites ./configure --enable-checking=release --disable-multilib(后面两项option必须加,不加会报错(也可能只是其中一项起作用)) make -j4 make install
5、没有bizp2 如果没有bizip,安装gcc依赖的时候会报错 解决: 运行yum install -y bzip2安装bzip2
6、gcc版本不更新 更新完gcc后需要断开xshell重新连接后再输入gcc -v才显示最新版本(不需要修改环境变量)
7、没有git yum install git-core 要是不能联网有没有git都一样,所有包都需要手动下载
8、安装binutils 从以下目录下载binutils:ftp.gnu.org/gnu/binutils/binutils-2.28.tar.bz2 tar jxvf binutils-2.28.tar.bz2 mkdir binutils-build cd binutils-build ../binutils-2.28/configure make -j4 make install
9、安装bazel(大坑) 下载地址1:git clone https://github.com/bazelbuild/bazel(非常之慢) 下载地址2:git clone https://github.com/CStzdong/bazel 发现报错: INFO: You can skip this first step by providing a path to the bazel binary as second argument: INFO: ./compile.sh compile /path/to/bazel ?? Building Bazel from scratch ERROR: Must specify PROTOC if not bootstrapping from the distribution artifact
-------------------------------------------------------------------------------- NOTE: This failure is likely occuring if you are trying to bootstrap bazel from a developer checkout. Those checkouts do not include the generated output of the protoc compiler (as we prefer not to version generated files).
* To build a developer version of bazel, do
bazel build //src:bazel
* To bootstrap your first bazel binary, please download a dist archive from our release page at https://github.com/bazelbuild/bazel/releases and run compile.sh on the unpacked archive.
The full install instructions to install a release version of bazel can be found at https://docs.bazel.build/install-compile-source.html For a rationale, why the bootstrap process is organized in this way, see https://bazel.build/designs/2016/10/11/distribution-artifact.html 进入错误信息中提到的https://github.com/bazelbuild/bazel/releases网站,选择最近版本的链接,进去后发现有一堆安装包。选择其中的一个直接下载https://github.com/bazelbuild/bazel/releases/download/0.5.3/bazel-0.5.3-installer-linux-x86_64.sh运行安装成功,执行时报错: /usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /usr/local/bin/bazel) 这个错误会在下文提到 重新运行./compile.sh 运行到一半报错 再执行一次,发现两次运行./compile.sh出现的错误不一致!疑似安装程序bug 尝试低版本bazel0.5.2,仍出现错误 尝试更低版本0.4.5,下载解压缩运行./compile.sh后安装成功!!! 下载地址:https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-dist.zip 然后执行: mkdir bazel-0.4.5-dist cd bazel-0.4.5-dist unzip ../bazel-0.4.5-dist.zip ./compile.sh cp ./output/bazel /usr/local/bin(复制bazel的Binary文件至/usr/local/bin,使得全局都能找到该文件)
10、关于手动离线安装bazel 不建议完全手动安装bazel,全程有100多个包的依赖,。,,,,,,
11、ERROR: Cannot determine JDK version, please set $JAVA_HOME.\n $JAVAC_VERSION is "javac 1.6.0_25" 安装GCC时如果遇到以上问题,说明java版本过低了(最低需要jdk8) 解决方法:https://jingyan.baidu.com/article/48a42057f238a9a92425042c.html jdk8下载地址:https://pan.baidu.com/s/1kUBT7Vp
12、手动安装numpy和scipy 依赖的包: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lapack-3.4.2 atlas-3.10.0 参考:http://blog.chinaunix.net/uid-22488454-id-3978860.html
13、pip 如果没有pip,就到PIP官网下载get-pip.py。 参考链接:http://www.jianshu.com/p/81b648b1d572 最后从python官网下载p3安装包就好了 如果公司有自己的镜像,可以修改pip的配置文件: cd ~/.pip/pip.conf(如果没有,就自己建一个;如果不能保存,说明没有.pip目录,需要进入~目录mkdir .pip) 然后加入下面的内容 [global] index-url = XXX trusted-host = pypi.douban.com disable-pip-version-check = true timeout = 120 注:XXX为国内或企业内部镜像,国内用https://pypi.douban.com/simple,公司内部就用自己的。
14、找不到Glibc2.XX(ImportError: /lib64/tls/libc.so.6: version `GLIBC_2.14' not found) glibc是GNU发布的libc库,即c运行库。 glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。 glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。 由此可见,问题的根源是系统不兼容,ubuntu上用的libc 版本较高,而 CentOS 上用的版本太低导致不能执行。。 解决这个问题有三种方法: 第一种:升级Glibc,这个风险非常大,很多时候升完了发现好多东西都不能用了; 第二种:外链Glibc,也就是在其他目录建一个Glibc,然后添加一个环境变量,这个在网上看貌似是可行的,但我这么做的时候依然报错。 第三种:更换linux系统,这个问题很多时候是CentOS安装tf环境时候造成的,可以尝试更换容器
15、查看glibc支持的版本 strings /lib64/libc.so.6 |grep GLIBC_ (结果一般会显示只支持到Glibc2.12)
16、找不到readelf 依据链接http://www.jianshu.com/p/308a4e803c81的说法,先用readelf -s 文件路径|grep GLIBC_2.14查看so里到底哪部分依赖了glibc2.14,发现readelf: command not found,没有readelf命令。。。 (readelf用来显示一个或多个elf格式的目标文件信息) 依据链接http://pkgs.loginroot.com/errors/notFound/readelf,需要添加环境变量:export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
17、直接升级glibc(风险比较大) yum install gcc wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.xz xz -d glibc-2.17.tar.xz tar -xvf glibc-2.17.tar cd glibc-2.17 mkdir build cd build ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make && make install 需要等大概10分钟
18、外链安装Glibc2 下载Glibc2.14: http://ftp.gnu.org/gnu/glibc/或者http://www.gnu.org/software/libc/ 安装: xz -d glibc-2.14.tar.xz tar -xvf glibc-2.14.tar 进入源码目录 建立构建目录,并cd进入构建目录: cd glibc-2.14 mkdir build 配置: ../configure --prefix=/opt/glibc-2.14 编译安装: make -j4 sudo make install 临时修改环境变量: LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
19、外链安装导致的严重后果 安装过程中,因为修改/etc/ld.so.conf文件,ldconfig后导致输入命令后,连最基本的命令也会报错: ls ls: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument 解决方法: 千万不要断开ssh,不然就远程不上去了 vi /etc/profile 加入 export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/lib:/lib64:/usr/local/lib:/usr/local/lib64 链接完了之后,Glibc2的问题是没有了,但import tensorflow的时候出现 Segmentation fault (core dumped)
20、Segmentation fault (core dumped) 直接强制退出Python了 根据链接https://github.com/tensorflow/tensorflow/issues/8197的解释,原因是gcc的版本过低,更新gcc在前文已经提过了。 还有文章提到是scipy和tensorflow冲突 根据http://blog.csdn.net/shouwangzhelv/article/details/51851155提到的解决方案,重新手工编译了scipy,依然不行。
21、glibc3找不到(version `GLIBCXX_3.4.21' not found) 参考http://blog.csdn.net/rznice/article/details/51090966 其实和找不到glibc2的性质差不多
22、glibc: LD_LIBRARY_PATH shouldn't contain the current directory LD_LIBRARY_PATH不能包含当前目录,需要修改环境变量并重新执行configure echo $LD_LIBRARY_PATH export LD_LIBRARY_PATH= echo $LD_LIBRARY_PATH ./glibc-2.14/configure
23、输入所有命令后都没反应了。。。 因为升级了Glibc,导致系统出问题了,把环境变量改回去就可以了。
24、安装anaconda 参考:http://www.jianshu.com/p/03d757283339 如果机器不能联网,anaconda基本就废掉了。。。
如果不能用ananconda,只好自己下载包然后上传了,单台机器就rz和sz,多台机器之间传文件就scp xxx root@abc:url
BY:YasselBing
tensorflow安装调试总结(持续更新)的更多相关文章
- 关于gpu版本的tensorflow+anaconda+jupyter的一些安装问题(持续更新)
关于anaconda安装,虽然清华镜像站资源很丰富,但是不知道是网络还是运气的问题,用这个路径安装的时候总是出现文件丢失.具体表现可能是anaconda prompt 找不到,conda命令无效等问题 ...
- tensorflow 学习纪录(持续更新)
import tensorflow as tf import numpy as np #tensor = tf.constant([[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7,8 ...
- Android Studio的安装使用记录[持续更新]
参考资料: Windows环境下Android Studio v1.0安装教程 http://ask.android-studio.org/?/article/9 1. 下载与安装 在http://w ...
- chrome调试技巧--持续更新
1.开始调试:右键审查元素 2.按钮功能: 调出控制台: 切换开发环境全屏还是嵌入: 清空当前显示: 将压缩 js 文件格式化缩进规整的文件: 3.常用页面功能: 查看.编辑(双击)HTML: 查看选 ...
- centos6.4安装使用wine 持续更新中
首先,从wine的官网下载页面http://www.winehq.org/download/可以了解到centos安装wine需要EPEL软件仓库.那么首先安装EPEL软件仓库,从http://mir ...
- 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...
- Ubuntu14.04+cuda 7.5+cudnn_v4+tensorflow安装
系统环境:Ubuntu14.04 64位.Windows7 64位 双系统 CUDA 版本: 7.5 总结一下,我的安装建议是: 一定要下一份CUDA官方的安装文档,按照它的步骤一步步慢慢来,不可偷懒 ...
- ReactNative开发笔记(持续更新...)
本文均为RN开发过程中遇到的问题.坑点的分析及解决方案,各问题点之间无关联,希望能帮助读者少走弯路,持续更新中... (2019年3月29日更新) 原文链接:http://www.kovli.com/ ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
随机推荐
- Python进阶——笔记1
1.*args 的用法 *args 和 **kwargs 主要用于函数定义. 你可以将不定数量的参数传递给一个函数. 这里的不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场 ...
- Unity 工作经历+近期面试经历
由于团队解散,这最近都在找新工作机会--投简历找工作.已经面试三家了,都没拿到offer,挺失落的.把这种感受记录下来,以作后鉴. 这本质上是一篇面试经历的记录,并不是什么面试攻略,主要是给自己总结的 ...
- (转)java提高篇(一)-----理解java的三大特性之封装
从大二接触java开始,到现在也差不多三个年头了.从最基础的HTML.CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过.失落过.寂寞过.虽然是半道出家但是经过自己的努力也算是完成了“学业” ...
- 项目中ApplicationContext
applicationContext说白了就是对beanFactory的扩展,也就是一个spring容器,而且applicationContext是单例的,项目中主要包含一个webApplicatio ...
- 我的学习之路_第三十四章_jsp
jsp 在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码(HTML,css,js),可以嵌入java代码,来实现动态页 ...
- 【转载】linux C …
原文地址:[转载]linux C 获取与修改IP地址作者:liuhong1.happy // setip.h #ifndef _INCLUDE_SETIP_H_ #define _INCLUDE_SE ...
- 用u盘装系统,进入bios后没有usb启动项怎么办
开机按DEL进入BIOS(现在还这么说吧,不同的主板进入方法不太一样),找到BOOT选项. 选择Boot mood:legacy support(引导模式,逻辑支持) boot priorty:leg ...
- java中链接数据库的具体操作以及pstmt.setObject(i+1, objects[i])这行代码的意思
package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...
- 案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理
案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理 环境:RHEL 6.5 + Oracle RAC 11.2.0.4 + Dataguard 今天在实验环境的 ...
- 第一个简单的python程序,模拟购物车
第一个pyhone程序,简单的购物车功能,刚开始学习,练习下手感. #/usr/bin/env python#-*- coding:utf-8 -*- salary = int(raw_input(& ...