说明
- 网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。有的教程甚至省略了一些细节部分,让小白更不知道如何判断每一步是否操作成功,如何处理出现的错误。
- 作者花费了很长时间才成功地将caffe装完,期间遇到好多错误,多次重装操作系统。现在将经验写下来,一方面为了和大家分享,讨论;另一方面是为了记录一下下~~~
环境
操作系统: Ubuntu 14.04(64bit)
GCC/G++:4.7.x
OpenCV: 2.4.11和3.0.0
Matlab :R2014b(a)
Python: 2.7
显卡:Telsa K40m & Telsa K20xm
安装步骤
安装Matlab
1. 下载Matlab
- 下载地址,请自行百度解决。太大了,不方便提供。
- 版本选择问题。最好下载较新的版本。比如R2014a,R2014b和R2015a等。
- 下载破解文件Crack文件。一般情况下,crack文件是包含在下载的Matlab安装镜像里面的——除非你下载的是MathWork公司提供的原版。如果里面没有crack文件,自行Google解决。
2. 安装Matlab
- Matlab安装过程请参考下面的连接(欧新宇)。里面给出了详细的教程。
说明几点:
- Windows下安装Matlab,直接双击安装文件即可。但是,在Ubuntu中安装Matlab时,是在命令行中安装的。具体而言,在命令行中,切换到Matlab安装包路径下,执行
sudo ./install
,就会跳出安装会话框。 - Ubuntu安装Matlab需要在图形界面中操作。如上所言,执行
sudo ./install
之后,会跳出图形对话框,如果是在纯粹的命令行上,应该无法进行。 - 安装过程中,依次会提示输入序列号,证书路径。
- Windows下安装Matlab,直接双击安装文件即可。但是,在Ubuntu中安装Matlab时,是在命令行中安装的。具体而言,在命令行中,切换到Matlab安装包路径下,执行
切记:图形安装对话框结束之后,Matlab并没有安装完成。
- 这时尝试打开Matlab会报错。通过在命令行中执行
matlab
,可以看到返回的错误信息是没哟激活。 - 但是,你可能疑惑,为什么呢?最后激活步骤,明明导入了证书文件(*.lic)?!
- 这是因为,我们使用的是盗版的的Matlab,所以还需要额外的一步:替换libmwservices.so库文件。
- 替换需要在命令行中操作,还需要root权限(超级用户)。因为需要将libmwservices.so复制到
/usr/local/Matlab/R2014b/***
目录下,该目录属于root用户,所以需要在命令行中是,使用cp
(或mv
)命令完成。 - 替换libmwservices.so之后就可以成功运行Matlab了。
1
sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
- 这时尝试打开Matlab会报错。通过在命令行中执行
3.GCC和G++版本问题
- 前面 《caffe安装系列——安装GCC4.7和G++4.7并降级》介绍了如何实现GCC和G++降级,并提到了为什么这样操作——Ubuntu14.04版本默认的GCC和G++都是4.8。而Matlab默认支持的mex编译器是GCC4.7.x和G++4.7.x。因此需要额外安装GCC4.7和G++4.7并降级。
*请注意一点: 《caffe安装系列——安装GCC4.7和G++4.7并降级》实现了GCC和G++的降级,但是并没有更改任何的关于Matlab文件。Matalb要使用GCC4.7和G++4.7,还需要做一些工作——重新连接 libstdc++.so.6文件。 - 具体操作命令如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13#拷贝文件
sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.20
# libstdc++.so.6.0.20的版本,可能因为系统不同而不同,使用最新的就可以了。Ubuntu14.04的最新版本是libstdc++.so.6.0.19。
# 切换路径
cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/
# 修改权限
chmod 555 libstdc++.so.6.0.20
#(仅仅是备份,可以不操作)。
sudo mv libstdc++.so.6 libstdc++.so.6.backup
# 重新链接
ln –s libstdc++.so.6.0.20 libstdc++.so.6
# 使配置生效
sudo ldconfig -v
4. 建立Matlab的快捷方式
- 新建一个文本文件(使用vi, gedit等),输入以下内容。退出保存。将该文件放到/home/yourname/Desktop/目录下,既可以看到Matlab的快捷方式。
1
2
3
4
5[Desktop Entry]
Name=Matlab 2014b
Exec=/usr/local/MATLAB/R2014b/bin/matlab -desktop
Icon=/usr/local/MATLAB/R2014b/toolbox/nnet/nnresource/icons/matlab.png
Type=Application - Exec是可执行文件,需要是绝对路径。
- Icon是图标,如果没有设置的话,不会显示Matlab的标志图标
- 以上路径根据自己安装路径更改。
- 快捷方式带一个小锁的问题。看看该文件的属主是谁,如果不是自己,使用
chown
命令将属主改为自己;如果没有执行权限,使用chmod
命令增加可执行权限。
检查
- 检查Matlab是否安装成功。
在命令行中输入matlab,回车。如果打开Matalb,说明安装成功。如果没有打开,将路径切换到Matlab安装路径下的bin文件夹下,再次执行matlab,如果还没有打开,就说明没有安装成功。如果任何一次打开了,就说明安装成功了。 - 检查GCC版本问题。
通过命令strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX
,可以看一下,是否已经成功包含了GLIBCXX_3.4.20(Ubuntu14.04中是GLIBCXX_3.4.19),如果已经存在,基本上就成功了。