在离线环境下安装caffe/TensorFlow

首先,因为caffe需要的依赖包实在是太多了,无法一个个单独找出来安装,所以我们这里采用自己搭建离线镜像服务器的方式来进行依赖环境安装。

所以需要的前置条件有:
* 一块不小于150G的移动硬盘(U盘也行)
* 高速网络(不然150G的数据下载得很久)

离线安装Apache

想要部署离线镜像服务器,Apache是必须的。
具体安装步骤:https://blog.csdn.net/u011612729/article/details/16950703
具体安装步骤看上面的博客。

有时候明明已经安装了apr了,可是在安装apr-util的时候一直提示APR not found的话,就需要手动指定apr的地址,添加--with-apr=/usr/local/apr这条语句。
=号后面的地址是你编译sudo ./configure --prefix=/usr/local/apr时指定的地址。

需要注意的是,在安装apr-util的时候,如果出现expat.h 没有那个文件或目录这个提示的话,需要安装expat,下载地址:http://download.chinaunix.net/down.php?id=38874&ResourceID=2844&site=1

若是提示缺少aclocal-1.15,就手动安装m4, autoconf, automake, libtool,参考地址:https://blog.csdn.net/u011334621/article/details/44035295

有一个需要注意的地方就是,在安装httpd的时候,./configure时没有报错,到make的时候出现以下错误:

collect2: error: ld returned 1 exit status
Makefile:48: recipe for target 'htpasswd' failed
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory '/etc/httpd-2.4.27/support'
/etc/httpd-2.4.27/build/rules.mk:75: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/etc/httpd-2.4.27/support'
/etc/httpd-2.4.27/build/rules.mk:75: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

所以把下载下来的aprapr-util解压到httpdsrclib目录下的apr和apr-util目录,注意目录名字要一致。
重新生成make文件

sudo ./configure  --with-pcre=/usr/local/pcre --with-included-apr #其他参数请参照官方
sudo make
sudo make install

sudo ./configure –with-prce=‘/usr/local/bin/pcre-config’ –with-included-apr #其他参数请参照官方
sudo make
sudo make install
参考:解决办法:https://www.linuxidc.com/Linux/2017-08/146567.htm

APT本地源的搭建(可用于局域网apt-get源搭建或者本地源)

需要在另外联网的Ubuntu上下载服务器的镜像。具体步骤参考:http://www.cnblogs.com/czalinux/p/6188938.html
其中要注意,如果你把里面的阿里云的源更换了的话,例如中科大的源。

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

要注意看:deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
其中的是xenial还是trusty
在之后的更换离线机器的source.list的时候要也一样。

PIP离线下载安装包

具体步骤参考:https://blog.csdn.net/xiefp/article/details/75007538
先把caffe里面的python文件夹的requirements.txt拷贝出来。
使用pip install --download /tmp/offline_packages(你的离线PIP安装包文件夹) -r requirements.txt 把caffe需要的pip包下载好。

TensorFlow的话,只需要用pip install --download /tmp/offline_packages(你的离线PIP安装包文件夹) tensorflow #CPU版本
或者pip install --download /tmp/offline_packages(你的离线PIP安装包文件夹) tensorflow_gpu #GPU版本 就可以把PIP安装包下载好了。

有时候在离线机器上部署的时候会出现could not find a version that satisfies the requirement tensorflow的问题,这个是你的PIP版本不对出现的。

所以可以先把新版本的PIP的whl包先下载好,下载网站:https://pypi.org/project/pip/,这个网站可以下载任何pip包,如果在离线机器上提示缺少什么包的话,在这个网站上面找一下就能下载了。

caffe/TensorFlow的安装

有时候会出现红色的提示,若是permission denied就是权限不够,在pip install前面加上sudo就行。

TensorFlow的安装

TensorFlow的安装比较容易,根据上面参考的网站:https://blog.csdn.net/xiefp/article/details/75007538

输入命令:pip install --no-index --find-links="/tmp/tranferred_packages(你的PIP离线安装包文件夹)" tensorflow_gpu #GPU版本
或者pip install --no-index --find-links="/tmp/tranferred_packages(你的PIP离线安装包文件夹)" tensorflow #CPU版本

若是什么版本的提示(required),可能是你的PIP版本过低,使用pip install --no-index --find-links="/tmp/tranferred_packages(你的PIP离线安装包文件夹)" --upgrade pip更新一下pip,前提是你的离线安装包里面有pip的新版本,没有就去https://pypi.org/project/pip/上下。

caffe的安装

安装caffe安装教程走:https://blog.csdn.net/enjoyyl/article/details/47397505#

其中需要注意的是,在caffe/python目录下安装pip包的一步,我们需要将其改为:
pip install --no-index --find-links="/tmp/tranferred_packages(你的PIP离线安装包文件夹)" -r requirements.txt
这样就行了。

猜你喜欢

转载自blog.csdn.net/chenhuan20123/article/details/80070809