说明

  • 网上关于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之后,会跳出图形对话框,如果是在纯粹的命令行上,应该无法进行。
    • 安装过程中,依次会提示输入序列号证书路径
  • 切记:图形安装对话框结束之后,Matlab并没有安装完成。

    • 这时尝试打开Matlab会报错。通过在命令行中执行matlab,可以看到返回的错误信息是没哟激活
    • 但是,你可能疑惑,为什么呢?最后激活步骤,明明导入了证书文件(*.lic)?!
    • 这是因为,我们使用的是盗版的的Matlab,所以还需要额外的一步:替换libmwservices.so库文件
    • 替换需要在命令行中操作,还需要root权限(超级用户)。因为需要将libmwservices.so复制到/usr/local/Matlab/R2014b/***目录下,该目录属于root用户,所以需要在命令行中是,使用cp(或mv)命令完成。
    • 替换libmwservices.so之后就可以成功运行Matlab了。
sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
  • 1

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文件。
  • 具体操作命令如下所示:
#拷贝文件
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

4. 建立Matlab的快捷方式

  • 新建一个文本文件(使用vi, gedit等),输入以下内容。退出保存。将该文件放到/home/yourname/Desktop/目录下,既可以看到Matlab的快捷方式。
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 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),如果已经存在,基本上就成功了。

参考链接

《Caffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南》——欧新宇

《caffe安装系列——安装GCC4.7和G++4.7并降级》

[ARM-Linux]Linux-MATLAB安装的更多相关文章

  1. Linux下MATLAB安装及使用

    安装过程 1.在在media目录下创建matlab文件夹,并挂载R2017b_glnxa64_dvd1.iso镜像文件 sudo mkdir /media/matlab sudo mount -t a ...

  2. Linux下Matlab的安装

    1 概述 笔者环境Manjaro,本来想直接通过yay安装的,但无奈失败了,于是直接从官网下载进行安装. 2 下载安装包 Matlab官网可以戳这里,点击右上角的Get MATLAB就可以下载了: 没 ...

  3. Linux桌面环境安装matlab并创建快捷方式

    安装matlab sudo mkdir -p /mnt/matlab sudo mount -t auto -o loop /home/chris/Downloads/2016b_linux/R201 ...

  4. [转]Caffe在Linux下的安装,编译,实验

    Caffe在Linux下的安装,编译,实验  原文地址:http://www.cnblogs.com/evansyang/p/6150118.html 第一部分:Caffe 简介 caffe是有伯克利 ...

  5. Linux下编译安装qemu和libvirt

    目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3  ...

  6. Linux(Ubuntu)下载安装破解Matlab2016

    跳过废话, 直接看教程 前言 笔者平常不是很喜欢用Matlab, 因为所需要的功能都能被Python替代, 而Matlab的肥和慢实在令人难以忍受. 在Linux系统下安装Matlab也比Window ...

  7. Holer实现外网访问ARM嵌入式Linux系统

    公网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从公网也能访问内网ARM嵌入式Linux系统? 本文将介绍使用holer实现的具体步骤. 1. 准备工 ...

  8. 外网访问ARM嵌入式Linux系统

    外网访问ARM嵌入式Linux系统 实验室里的ARM嵌入式Linux系统,只能在局域网内访问,怎样从外网也能访问ARM嵌入式Linux系统? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并 ...

  9. Linux下编译安装qemu和libvirt【转】

    转自:http://www.cnblogs.com/findumars/p/5679742.html 目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 ...

  10. linux中matlab的中文乱码问题

    ref:http://hi.baidu.com/36470902/item/47f3b133c419d989f5e4ade1 将系统的jre拷贝到matlab去 . sudo mv $MATLAB/s ...

随机推荐

  1. Oracle数据库触发器

    第一次写触发器,浪费了一个小时,少了一个;编译不通过 当A表有更新或插入数据时,则触发器执行向B表插入对应条件的数据1 CREATE OR REPLACE TRIGGER Test -- 触发器名称 ...

  2. git的clone

    在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s):/ ...

  3. Gin-Go学习笔记八:Gin-Web框架 常用的包

    常用的包 1>     在java,.net,php,node.js等语言常常会使用到包的概念.包的使用,可以加快项目的进度的开发,以及更好的实现项目的效果.我在网上查到了包的作用如下: 1.包 ...

  4. Easypoi实现单模板生成多页wrod文档

        EasyPoi可以很方便的通过一个word模板,然后通过填充模板的方式生成我们想要的word文档.但是碰到了一个单模板生成多页数据的场景,比如一个订单详情信息模板,但是有很多订单,需要导入到一 ...

  5. 使用paginate方法分页无法判断获取的数据是否为空

    问题:使用paginate方法分页无法判断获取的数据是否为空,在模板里面无法判断数据是否为空,比如在商品列表当中,当没有商品时无法判断生成的对象为空,所有就什么都不显示了. 解决办法: $newsDa ...

  6. Django框架(十二)-- Djang与Ajax

    一.什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传 ...

  7. Vue中美元$符号的意思与vue2.0中的$router 和 $route的区别

    vue的实例属性和方法 除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来.例如: var data = { a: 1 } var vm = n ...

  8. wordpress调用自定义post_type文章

    前面我们讲了wordpress添加post_type自定义文章类型,我们现在来讲一下如何把自定义文章调用出来,我们以product为例,虽然我们自定义好了 Post Type 同时也编写了一些内容,但 ...

  9. mybatis框架-resultMap的自动映射级别-partial 和full的探讨

    现在我们做一个小实验,输出一下上一个案例中没有匹配的属性,注意哦,现在user类中是有内部嵌套的复杂数据类型的 运行结果: 注意到:现在居然连userPassword都打印不出来了,原因就是user类 ...

  10. Comet OJ 夏季欢乐赛 距离产生美

    距离产生美 https://cometoj.com/contest/59/problem/B?problem_id=2680 题目描述 JWJU放暑假了,于是鸡尾酒就和女朋友璇璇一起出去玩.但是外面太 ...