话说CentOS装caffe也真心是个坑,装了两天,python因为应用中不用,谢天谢地,这里说下安装过程,不过,不同机器可能遇到的问题不一样。这里参考了一些博客:http://my.oschina.net/speedinghzl/blog/464142?fromerr=PMKemZsc 幸亏opencv按照这个上面的装的,不然不知道又有多少坑,还有http://caffe.berkeleyvision.org/install_yum.html官网的文档,依赖库尽量按着这个来。下面说一下完整过程

1. 首先,我是在虚拟机上安装的,虚拟机的安装过程这里不说了。安装完centos6.5后,要看看你的网络配置,这里可以参考:

http://jingyan.baidu.com/article/d5c4b52bc73700da560dc535.html

我是自动获取IP的。配置完成后需要重启服务

ifconfig -a
vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置动态IP。
通过修改ifcfg-eth0内容配置IP地址;按键盘字母【a】进入其VI编辑模式。
◆将ONBOOT=no改为ONBOOT=yes 激活网卡。
◆将NM_CONTROLLED=yes改为NM_CONTROLLED=no。
修改完成后按【Esc】键退出编辑模式,输入":wq"敲回车保存修改结果。
重启网络服务,查看动态IP配置结果。
输入命令:service network restart (重启网络服务)
输入命令:ifconfig -a (查看网络配置)

我只做到这一步。


2. 安装wget

sudo yum -y install wget


3. 修改yum源,我这里用的是163的源

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS6-Base-163.repo CentOS-Base.repo

yum makecache
yum update

4. 基本库安装:

sudo yum -y groupinstall "Development Tools"
添加EPEL依赖:
sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
这个可以参考:
http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/

一些依赖库:

sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
这里,boost 和opencv版本太低需要手动安装


5. boost安装

wget http://www.mirrorservice.org/sites/dl.sourceforge.net/pub/sourceforge/b/bo/boost/boost/1.55.0/boost_1_55_0.tar.bz2
源博客中的链接地址一直出错,所以在网上找了上面的地址
$ tar jxvf  boost_1_55_0.tar.bz2
$ cd boost_1_55_0
$ ./bootstrap.sh
$ ./b2
$ sudo ./b2 install


6 opencv安装

$ sudo yum -y install cmake pkgconfig gtk2-devel python-devel numpy tbb-devel libpng-devel 
$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip 
$ unzip opencv-2.4.10.zip 
$ cd opencv-2.4.10 
$ mkdir build 
$ cd build 
$ cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON 
$ make
$ sudo make install


7 其他依赖

sudo yum install gflags-devel glog-devel lmdb-devel
这里面,估计只有lmdb不需要手动装

其他都要重装一遍

一个个来

glog

wget https://github.com/google/glog/archive/master.zip
$ unzip master.zip 
$ cd glog-master 
$ ./configure 
$ make  
$ sudo make install

gflags

因为我在编译过程中发现直接安装的gflags报错了, 出现https://github.com/BVLC/caffe/issues/3870 类似的问题,但是上面提出的办法会有其他问题,因此手动下了一个,重新装了一下。

wget https://github.com/schuhschuh/gflags/archive/master.zip 
unzip master.zip
cd gflags-master
mkdir build && cd build
cmake .. && make VERBOSE=1
make && make install

还要安装 blas

sudo yum install atlas-devel


这里需要注意的是,在caffe的Makefile.config中需要加入altas的路径,因为我在这里遇到了路径找不到的错误,配置之后就没有了:



8 编译caffe,

caffe可以直接用git下载

make all

make test

在make test过程中,遇到类似

http://superuser.com/questions/171836/what-am-i-doing-wrong-when-a-linux-app-doesnt-find-an-so-file

的问题,最后添加了变量LD_LIBRARY_PATH = /usr/local/lib解决


make runtest

在make runtest中,一般只要出问题都是protobuf没有装,
这也是整死我了,一开始下了个2.5.0的,死活不行,后来换了2.6.0的OK了,真心不懂。
wget https://github.com/google/protobuf/releases/download/v2.6.0/protobuf-2.6.0.zip
./configure --prefix=/usr/local/protobuf
make 
make check
make install
添加路径:
export PATH=$PATH:/usr/local/protobuf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib

可能有些jar编译的错误,不用管
make clean后重新编译caffe,居然通过了,当场泪崩。

参考资料:

http://my.oschina.net/speedinghzl/blog/464142?fromerr=PMKemZsc

http://caffe.berkeleyvision.org/install_yum.html

https://github.com/google/protobuf/issues/51

CentOS6.5虚拟机安装Caffe大致记录的更多相关文章

  1. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  2. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  3. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  4. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  5. 解决Swift 3中缺少递归协议约束的问题

    Swift3目前对“递归协议约束”有一个限制.有一个公开的问题here,在here,here和here有类似的讨论.但是,我仍然没有看到应该如何解决这个限制.可能吗?或者我需要开始引入较不严格的协议,直到在Swift中实现?会出现.然而,通过这种方法,我们可以得到正确的类型,而无需做很多专业化.当然,可以添加更多的协议来获得更多的抽象,但同样的解决方案将会适用.由于某些原因/语言缺陷,您必须在View.foo中分配委托时使用显式转换:viewmodel.delegate=selfas?

  6. Android VM不允许我们分配xx字节

    我正在开发一款安卓游戏.当我尝试使用3张图像作为背景时问题就出现了.图像为1280x720px和100kb大.图像真的不是那么大,所以我有点困惑,为什么它们应该导致内存问题.注意:屏幕分辨率为800×400,因此我无法通过因子2调整图像大小,因为它是suggestedonandroiddeveloper注意:我正在使用HTC欲望手机(这里崩溃来了),我也尝试过在三星galaxyS1和三星上运行正常

  7. android – Proguard是否从Java源代码中删除了注释

    我正在使用下面的progaurd-android.txt文件中的代码混淆Android代码.我的问题当我们在Progaurd中使用上述设置时,Progaurd会删除Java源文件中的所有注释吗?解决方法无论设置如何,ProGuard都不会从源文件中删除任何内容.ProGuard确保编译的文件具有模糊的方法/类名,并在可能的情况下完全删除适当的方法/类.无论您是否使用ProGuard,编译的Java二进制文件都不包含常规代码注释.

  8. 在Android中编译java文件后,注释会发生什么?

    Android编译器如何工作?它是否在编译时删除了Java代码和AndroidXML文件中的注释?

  9. 为什么Android上的每个应用程序都有单独的VM(Dalvik / ART)实例?

    正如标题所述,为什么Android上的每个App都有单独的VM实例?(需要它)如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?解决方法在单个进程中运行多个应用程序不起作用的原因有很多;这是两个:安全区.两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射.失败隔离.如果进程泄漏内存并崩溃,则只会损害自身.

  10. android – 如何选择最佳图像大小不超过VM预算?

    在我的应用用户中,选择图像和程序可让用户对图像进行更改.由于有很多不同的Android设备,我的程序在一些设备上崩溃,这些设备的堆大小较少.我想计算用户手机的最佳尺寸,以免因VM预算而崩溃.我添加了“PicsayPro”的截图,它正是我正在寻找的.我知道“BitmapFactory.Options”我唯一的问题是找到一种方法来决定图像尺寸,这不会因为VM预算而导致应用程序崩溃.解决方法计算手机剩余

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部