这段时间需要部署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安装调试总结(持续更新)的更多相关文章

  1. 关于gpu版本的tensorflow+anaconda+jupyter的一些安装问题(持续更新)

    关于anaconda安装,虽然清华镜像站资源很丰富,但是不知道是网络还是运气的问题,用这个路径安装的时候总是出现文件丢失.具体表现可能是anaconda prompt 找不到,conda命令无效等问题 ...

  2. 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 ...

  3. Android Studio的安装使用记录[持续更新]

    参考资料: Windows环境下Android Studio v1.0安装教程 http://ask.android-studio.org/?/article/9 1. 下载与安装 在http://w ...

  4. chrome调试技巧--持续更新

    1.开始调试:右键审查元素 2.按钮功能: 调出控制台: 切换开发环境全屏还是嵌入: 清空当前显示: 将压缩 js 文件格式化缩进规整的文件: 3.常用页面功能: 查看.编辑(双击)HTML: 查看选 ...

  5. centos6.4安装使用wine 持续更新中

    首先,从wine的官网下载页面http://www.winehq.org/download/可以了解到centos安装wine需要EPEL软件仓库.那么首先安装EPEL软件仓库,从http://mir ...

  6. 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新

    python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...

  7. Ubuntu14.04+cuda 7.5+cudnn_v4+tensorflow安装

    系统环境:Ubuntu14.04 64位.Windows7 64位 双系统 CUDA 版本: 7.5 总结一下,我的安装建议是: 一定要下一份CUDA官方的安装文档,按照它的步骤一步步慢慢来,不可偷懒 ...

  8. ReactNative开发笔记(持续更新...)

    本文均为RN开发过程中遇到的问题.坑点的分析及解决方案,各问题点之间无关联,希望能帮助读者少走弯路,持续更新中... (2019年3月29日更新) 原文链接:http://www.kovli.com/ ...

  9. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

随机推荐

  1. python爬虫从入门到放弃(二)之爬虫的原理

    在上文中我们说了:爬虫就是请求网站并提取数据的自动化程序.其中请求,提取,自动化是爬虫的关键!下面我们分析爬虫的基本流程 爬虫的基本流程 发起请求通过HTTP库向目标站点发起请求,也就是发送一个Req ...

  2. 通过HtppWebRequest发送图片到服务器并保存

    之前写的楼主没有测试,后来发现用起来有点小问题 就修改了一下,现在已经亲测可用 完全没有问题了  下面就开始贴代码了 首先将图片装换成功byte 数组 这个path是图片的路径  例如d:12.png ...

  3. [补档][Poi2014]FarmCraft

    [Poi2014]FarmCraft 题目 mhy住在一棵有n个点的树的1号结点上,每个结点上都有一个妹子. mhy从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装zhx牌杀毒 ...

  4. 52. leetcode 96. Unique Binary Search Trees

    96. Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) tha ...

  5. 36. leetcode 415. Add Strings

    415. Add Strings Given two non-negative integers num1 and num2 represented as string, return the sum ...

  6. 新的表格展示利器 Bootstrap Table

     1.bootstrap table简介及特征 Bootstrap Table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分 ...

  7. Git版本控制系统之基本使用

    最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...

  8. .net操作IIS,新建网站,新建应用程序池,设置应用程序池版本,设置网站和应用程序池的关联

    ServerManager类用来操作IIS,提供了很多操作IIS的API.使用ServerManager必须引用Microsoft.Web.Administration.dll,具体路径为:%wind ...

  9. HTML 文本格式化实例 超链接

     HTML 文本格式化实例 1.文本格式化 <b>加粗文字</b> <strong>加重语气</strong> <big>dingyi< ...

  10. Git 深入浅出

    如果你是一个开发人员,想用上这个世界上目前最先进的分布式版本控制系统,那么,赶快开始学习吧!(耐心读下去,收获满满) Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git ...