首先,因为caffe需要的依赖包实在是太多了,无法一个个单独找出来安装,所以我们这里采用自己搭建离线镜像服务器的方式来进行依赖环境安装。
所以需要的前置条件有:
* 一块不小于150G的移动硬盘(U盘也行)
* 高速网络(不然150G的数据下载得很久)
想要部署离线镜像服务器,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
所以把下载下来的apr和apr-util解压到httpd的srclib目录下的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
需要在另外联网的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
的时候要也一样。
具体步骤参考: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包,如果在离线机器上提示缺少什么包的话,在这个网站上面找一下就能下载了。
有时候会出现红色的提示,若是permission denied
就是权限不够,在pip install
前面加上sudo
就行。
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安装教程走:https://blog.csdn.net/enjoyyl/article/details/47397505#
其中需要注意的是,在caffe/python
目录下安装pip包的一步,我们需要将其改为:
pip install --no-index --find-links="/tmp/tranferred_packages(你的PIP离线安装包文件夹)" -r requirements.txt
这样就行了。