Ubuntu 18.04 环境下安装 Matlab2018
由于实验环境要求,最近在 Ubuntu 18.04 上安装了 Matlab2018b , 这里简单记录过程。
(1) 首先是获取对应的 Matlab2018b 的安装包,这里笔者是在一个外国的网站上获得的,网址为:https://downloadly.ir/software/engineering-specialized/mathworks-matlab-download/,看不懂网页内容时可以在页面空白处 右键 -> 翻译为英文 ( chrome ),之后即可根据页面上的链接下载对应的内容,注意页面附的链接会有些强制跳转的广告,在下载时可以将鼠标放置在目标链接上,右键 -> 复制链接地址 的方式直接获取下载地址。
(2) 在上述界面上下载完整的五个 rar 压缩包,并对上述 rar 压缩包进行解压,只需通过命令指定解压的第一个压缩包,后续的压缩包会自动解压。这里通过 rar 命令进行压缩包的解压,默认条件下 ubuntu 系统并不支持 rar 的压缩方式,需要安装对应的 rar 程序进行解压。关于 rar 命令的更多介绍,可以参考 man rar 帮助和笔者的另一篇总结 Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar。
安装 rar 程序:
sudo apt install rar //安装 rar
进行解压操作:
rar x Mathworks_Matlab_R2018b_v9.5.0_Linux64.part1_Downloadly.ir.rar ~/Matlab2018 //将压缩包解压至用户主目录的 Matlab2018
(3) 解压完成后,进入解压后的目录,会获得对应的两个 iso 文件和一个 Crack 文件夹。其中 Crack 文件夹中的 Readme.txt 文件记录了简单的安装过程。
(4) 首先新建一个空的文件夹,之后将上述第一个 iso 文件挂载到新建的文件夹上进行操作。挂载完成后,上述目录下即为对应的安装执行程序。
mkdir ~/matlab //用户主目录下新建文件夹 matlab sudo mount -o loop MatlabR2018b_LinX64_disk1_Downloadly.ir.iso ~/matlab //将 iso 文件挂载在 ~/matlab 目录下
这里需要注意,安装命令需在上述挂载目录之外执行,即需在 ~/matlab 目录之外执行安装,由于默认的matlab安装位置位于 /usr/local/ 目录下,在其中创建目录需要 root 权限。
sudo ~/matlab/install //执行安装程序
(5) 安装时选择 Use a File Installation Key 选项,并同意使用协议,在之后的界面中输入之前 Crack 文件夹中 Readme.txt 文件中的安装秘钥即可。
在后续的安装目录选择中,选择默认的安装目录,即可进入安装过程,会有进度条提示安装的进度。
(6) 在安装完成一半后,安装向导会提示需要第二个 iso 文件。首先将第一个 iso 文件取消挂载,在文件资源管理器中选中挂载的目录 matlab ,右键 -> umount ,并确定取消挂载即可。
之后将第二个 iso 文件挂载在相同的目录上,执行的命令与(4)中的 mount 命令一样,不过将 iso 文件换为第二个。挂载完成后选择 OK 继续执行安装过程。
(7) 为了使用方便,这里安装 matlab-support 来对 matlab 进行支持,可以显示 Matlab 的图标和提供一些其他的功能。
sudo apt install matlab-support //安装 matlab-support
安装过程中会要求指定 Matlab 的安装目录,也就是之前(5)中的安装路径。并要求对 Matlab 进行激活,这里选择离线激活并选中原 Crack 文件夹中的 license_standalone.lic 文件即可。
(8) 完成 matlab-support 的安装后,还需要用 Crack 文件夹中的 bin 文件的内容替换原 Matlab 安装目录中的 bin 文件夹的内容。
sudo cp -rvf R2018a/bin /usr/local/MATLAB/R2018b/ //将 Crack 文件夹下 bin 文件内容复制到 Matlab 安装目录下
(9) 上述步骤完成后,用户已经可以通过 win + a 显示的应用界面中搜索得到对应 Matlab 应用的图标,点击图标即可运行。
另注:上述安装过程完成后,笔者打开 Matlab 时,会报错"Cannot write to preference file "matlab.prf" Check file permissions.",这是由于 Matlab 的安装过程通过 root 权限完成,故而所有的安装文件和配置文件的所有者均为 root。点击图标运行 Matlab 时,是以普通用户的权限运行的,故而会使得 Matlab 此时没有权限去写位于用户主目录下的 .matlab 文件的内容。一个可行的解决方法是将上述文件夹的所有者修改为当前用户,使得当前用户使用 Matlab 时具备写的权限。
sudo chown -R user_name ~/.matlab //修改上述目录的所有者为当前用户
参考:
Linux MATLAB 2018a 安装教程及启动失败解决办法
使用 Matlab 的遇到的问题:
在使用 Matlab 的 mex 进行编译时,报错 "cannot convert ‘const mwSize* {aka const long unsigned int*}’ to ‘const int*’ ...".由于使用网上公开的代码,故而程序本身无法正确编译的可能性较小,主要从环境的角度去解决问题。
a.在公开代码中是否存在对应的如 readme.txt 之类的说明文档,指定了程序编译所需的环境配置、宏定义、参数等;
b.在确定没有 a 的问题后,如果上述报错信息仍存在,则可能是系统本身环境的问题,如不同的系统版本、架构等问题导致的,在上述情况下,同样的报错多次出现,且均对应的是 mwSize 无法与 int 类型对应,猜测可能是不同系统环境下对应的类型实现不同导致的,这里的解决方法是在使用 mex 编译时使用兼容选项 -DMX_COMPAT_32.
另注:
如果有使用 Matlab C api 的需求,可以在 Matlab 的安装目录下找到对应的头文件和动态链接库。默认情况下,Matlab 的安装目录位于 /usr/local/MATLAB/,其中包含当前版本的 Matlab 目录。如笔者设备上的 Matlab 安装目录为 /usr/local/MATLAB/R2018b. 在该目录下即包含有使用 Matlab c api 所需的头文件和动态链接库。这里称 Matlab 的安装目录为 $MATLAB.
$MATLAB/bin/ //Matlab 可执行文件目录 $MATLAB/extern/include //Matlab c 头文件目录 $MATLAB/bin/glnxa64/ //Matlab 动态链接库路径
请发表评论