Ubuntu16.04不用管理员权限安装caffe依赖(上)

废话时间:想必很多人都受困于Caffe的环境,上一篇讲了如何安装CUDA,不得不用了很多管理员权限。我在第一家公司实习的时候,CUDA是放在/usr/local目录下的,大家都可以用,但自己的home目录下是空的,其他依赖包括opencv、boost等都要自己解决,且不能使用管理员权限,可能会把别人的环境搞乱。当时各种乱七八糟搞了一气总算把环境装好了,但很多东西我都不懂,导致每次环境出点小问题都要解决好久,平时没问题的时候也要小心翼翼不敢多做修改,好好的软件工程活生生玩成了环境工程。现在即将成为正式职工,再这样搞肯定是不行的,因此(从LOL中)抽出些时间,专门研究一下如何稳稳地不用管理员权限在自己home目录下把环境装好。(也许部分操作不得不用管理员权限,如有类似操作,我会加粗标示。除非迫不得已,不会用)

废话时间结束,下面开始正文。

按照github中给出的环境支持,gpu版Caffe地环境依赖主要有以下7个方面:

1.CUDA(已安装成功);

2.BLAS,这里我选择openblas;

3.boost>=1.55;

4.protobuf(臭名昭著,懂的都懂),glog,gflags(这G家两兄弟曾一度差点把我搞死,这次我决心搞死这两兄弟),hdf5(又一个阑尾);

5.opencv,我选择3.1版;

6.lmdb,leveldb(snappy);

7.cudnn。

我将按序安装。

一、OpenBLAS

OpenBLAS的安装可以说没有任何坑。

git clone一份源代码就不用多说了吧,相信各位git clone工程师都熟练(滑稽)。

进入到OpenBLAS目录下,直接make,然后按照指示make PREFIX=/path/to/your/save install。然后去指定目录找取OpenBLAS的include、lib和bin文件即可。

这里有一点和其他教程有所不同,很多其他人的教程说了要用apt-get安装gfortran,但我安装的系统已经自带gfortran,所以就直接make了,如果有人需要,我会尝试一下from source code编译gfortran,而不用apt-get。

在bashrc文件里加入export C_INCLUDE_PATH=/path/to/your/save/include:$C_INCLUDE_PATH,export CPLUS_INCLUDE_PATH=/path/to/your/save/include:$CPLUS_INCLUDE_PATH,export LD_LIBRARY_PATH=/path/to/your/save/include:$LD_LIBRARY_PATH,然后source。

这里我从别人那拷贝来的测试程序,稍做了一点点修改。

#include <cblas.h>
#include <stdio.h>

int main() {

    int i = 0;
    double A[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
    double B[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
    double C[9] = {.5,.5,.5,.5,.5,.5,.5,.5,.5}; 

    int M = 3; // row of A and C
    int N = 3; // col of B and C
    int K = 2; // col of A and row of B

    double alpha = 1.0;
    double beta = 0.0;

    cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, K, alpha, A, K, B, N, beta, C, N);

    for (i = 0; i < 9; i++) {
        printf("%lf ", C[i]);
    }
    printf("\n");
    return 0;
}

用gcc -o openblas_test openblas_test.cpp -L/path/to/your/save/lib/ -lopenblas编译然后执行,如果没报错,说明openblas编译成功。

其中-L用于链接动态库保存地址,-l用于链接动态库,我尝试了在bashrc中加入LD_LIBRARY_PATH,但不知为什么没用,编译的时候还是检索不到动态库。

执行结果如下图所示,仅供参考。

二、boost

boost好像没听说有什么坑。

在boost.org下载的最新版本(1.70.0)boost压缩文件;

进入boost所在文件夹;

./bootstrap.sh --with-libraries=all --with-toolset=gcc 其中with-libraries参数表示编译哪些库,with-toolset则是编译工具,如果有多个gcc可以指定版本;

./b2 toolset=gcc 开始进行编译,这一步会比较漫长,需要耐心等候;

随后执行./b2 install --prefix=/path/to/save进行安装,安装完成后一样要将安装目录下的include路径export到bashrc文件中;

至此安装已经完成,测试我和我参考的博客不太一致,我编译使用boost::thread程序的时候需要添加pthread库,且输出结果也不太一致。因为我自己尚不太懂多线程,这里就先留白了,等我搞懂了多线程再回头解决这个问题。

我参考的博客在参考文献中,原博客写的比我详尽,仍有疑问的朋友可以移步原博客。

三、protobuf

臭名昭著的protobuf来了,相信大多数玩过caffe的人都一度被这家伙折磨得痛不欲生,这玩意版本实在太多了,而且版本不兼容问题严重,这里我选择的是3.5.0。

惊闻编译protobuf需要curl,我系统里又没有,为尽可能不使用管理员权限,这里选择build curl from source code,详情见附录1。

1.运行./autogen。这一步就搞出一堆幺蛾子,我真是不懂为什么我用G家的东西永远都这么痛苦。

第一个问题就是提示无法正确安装gmock,建议自己下载一个gmock-1.7.0,打开autogen文件,按照autogen的指示,将gmock-1.7.0分别重命名为gmock和gmock/gtest,再运行./autogen。第一个问题解决。

第二个问题更让人无语,说possible undefined macro: AC_PROG_LIBTOOL,这个问题稍微谷歌了一下,原来是bashrc中还要加一句export ACLOCAL_PATH=$HOME/install/libtool/share/aclocal:$ACLOCAL_PATH。至此autogen终于成功执行。

2.执行./configure --prefix=/path/to/save

3.make

4.(很耗时)make check

5.make install

6.环境什么的和前面差不多,自行解决吧。

protobuf编译与安装主要参考文献5,这里推荐尽量使用bashrc管理protobuf的版本,用自己亲手装的版本肯定要有把握一些,尽量不要用自己不清楚来路的东西,以免混乱。

四、glog

1.执行./autogen.sh

2.执行./configure --prefix=XXX

3.make && make install

4.配置环境变量

五、gflag

这个有点麻烦,需要cmake,不巧的是我系统里也没有cmake,具体编译与安装见附录2。

1.cmake .

2.make

3.make DESTDIR=/path/to/install install

4.配置环境

使用DESTDIR指定目录有一个问题,以include为例你生成的最终目录就是/path/to/install/usr/local/include,目前我还不知道该怎样处理这种情况,但只是有点麻烦,不影响具体使用。

六、hdf5

这个玩意很鸡肋,反正我是从来没有用过,还经常导致各种奇奇怪怪的报错,如果有兴趣的话可以从caffe中将关于hdf5的内容尽数删去(也不是很麻烦,以前尝试过,大概需要半个小时吧)。不过这里还是编译一份hdf5以备后患。我这里下载的版本是1.10.5。

1.执行./configure --prefix=/path/to/save/hdf5/

2.make

3.make install

我最讨厌hdf5这个东西,编译的时候也一直在报warning,虽然程序员的世界没有warning,但还是让人喜欢不起来。

Ubuntu16.04不用管理员权限安装caffe依赖(上)就到这里了,仔细看下来我们会发现,其实就那么几种套路反复使用,只要最开始安装的时候环境是干净的,就不会有任何问题,即使出现问题也很容易解决。这个系列将会继续写下去,直到Caffe跑通为止。

附录1:build curl from source code

安装curl需要先后预安装m4,autoconf,automake和libtool,安装见参考文献3中的内容,不需要管理员权限,没有任何坑,一次成功。只需要注意两点,一个是记得用prefix将安装目录指定在自己的home下,另外一个是安装好后要在bashrc中将bin文件夹export path。

1.git clone https://github.com/curl/curl.git

2.执行./buildconf

3../configure --prefix=/path/to/save

4.make && make install

5.在bashrc中将bin文件夹export path

更详细内容请看参考文献4

附录2:编译cmake

同样是build from source

1.执行./bootstrap

2.make

3.make DESTDIR=/path/to/install install

参考文献:

1. https://www.cnblogs.com/qujingtongxiao/p/10197784.html 测试openblas程序的出处

2. https://blog.csdn.net/this_capslock/article/details/47170313 编译boost参考的博客,内容比较详尽

3. https://blog.csdn.net/kobesdu/article/details/83048574 编译并安装m4和autoconf

4. https://blog.csdn.net/qianghaohao/article/details/51684862 编译并安装curl

原文地址:https://www.cnblogs.com/left4back/p/10957863.html

时间: 2024-10-07 15:07:42

Ubuntu16.04不用管理员权限安装caffe依赖(上)的相关文章

Ubuntu16.04不用管理员权限安装caffe依赖(下)

书接上回,讲到hdf5的编译,接下来讲后续依赖的编译. 一.opencv 我这里使用的版本是3.1,具体我也不知道为什么但大家都在用. 下载好源码后进入opencv目录下 1.执行mkdir build && cd build 2.执行cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/path/to/save -DWITH_IPP=OFF .. 记住,这里一定要加上-DWITH_IPP=OFF,否则会提示下载ippicv pa

Ubuntu16.04+matlab2014a+anaconda2+OpenCV3.1+caffe安装

本次安装caffe是在新的笔记本上,感觉与之前在台式机上的安装还是有一定的区别.加之是在新的ubuntu16.04系统上安装的,可参考教程较少.而且其中添加了不少库,修改的一些错误,难免会有遗漏.如果发现本文未提及错误,欢迎一起讨论学习.另外,看到有的人说安装了半个多月,多次重装,希望有问题还是先把问题查清楚,不要盲目重装系统;其次,安装的时候最好记录自己安装的过程和内容,避免遗漏和重复,出问题了也可以与别人的教程相对比. 首先介绍安装条件和软件准备: - 联想笔记本电脑Y700-15ISK,双

Ubuntu16.04 + cuda8.0 + GTX1080安装教程

1. 安装Ubuntu16.04 不考虑双系统,直接安装 Ubuntu16.04,从 ubuntu官方 下载64位版本: ubuntu-16.04-desktop-amd64.iso . 在MAC下制作了 Ubuntu USB 安装盘,具体方法可参考: 在MAC下使用ISO制作Linux的安装USB盘 ,之后通过Bios引导U盘启动安装Ubuntu系统: 1)一开始安装就踩了一个坑,选择”Install Ubuntu”回车后过一会儿屏幕显示“输入不支持”,google了好多方案,最终和ubunt

windows下非管理员权限安装mysql

windows下,mysql有两种安装方式: 1.msi安装 2.zip安装 无论是哪种安装方式,都因为需要将mysql安装为一个服务,所以必须要以管理员权限安装. 因为公司的换了虚拟机,无法取得管理员权限.所以一直在寻找非管理员权限的mysql安装方法. 我们采用第二种,zip安装,不需要将mysql安装为服务,即 mysqld install 这样就避过了管理员密码,采用 mysqld --console 的方式即可,只是每次使用的时候都需要这样打开,不方便一点(没法,万恶的虚拟机..).

ubuntu16.04下sublime text3安装和配置

ubuntu16.04下sublime text3安装和配置 2018年04月20日 10:31:08 zhengqijun_ 阅读数:1482 1.安装方法 1)使用ppa安装 sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo apt-get install sublime-text-installer 卸载 sublime text 命令: sudo apt-get remove s

ubuntu16.04下源码安装onos1.0.2

由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 LTS 64bit 下载地址:https://www.ubuntu.com/download/desktop(桌面版) 2.安装依赖(这里的版本选择根据ONOS版本确定的,在上述参考链接中作者有提到----"关于Maven和Karaf版本的说明:此处建议使用推荐的karaf-3.0.3和Maven-3

ubuntu16.04+cuda8.0+cudnn5.0+caffe

ubuntu安装过程(硬盘安装)http://www.cnblogs.com/zhbzz2007/p/5493395.html"但是千万不要用麒麟版!!!比原版体验要差很多!!!"开关机的时候电脑最上面 有一行 提示 一晃即过,/dev/sda6: clean(未知,单没关系)http://blog.csdn.net/xuezhisdc/article/details/48649575(意义) 1.教程1http://blog.csdn.net/zwyjg/article/detail

ubuntu-16.04+-xxx-i386.iso :安装 Oracle 11gR2 数据库

前言:说实在的,ubuntu 16.04以上很难安装oracle!其间走过了艰难的一段路! 重要附件:ubuntu16.04+-xxx-i386.iso_安装oracle所需的软件包.zip 特点: 需要重新安装:libaio1_0.3.109-2ubuntu?_i386.deb.默认的libaio库有问题,和其默认libaio的编译方式有关! 需要重新安装gcc 4.4.7(这是当前4的最终版),默认的gcc 6.x因其新版本的许多默认特性会引起问题. 需要安装老版本的:libstdc++5_

Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)

注:本文有参考 这篇文章 ,但因其中有部分错误,所以在实际操作中遇到了很大的困扰,于是写成了这篇文章供大家使用 一.准备 1.1创建hadoop用户 $ sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell $ sudo passwd hadoop #为hadoop用户设置密码,之后需要连续输入两次密码 $ sudo adduser hadoop sudo #为hadoop用户增加管理员权限 $ su - hado