前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS命令行安装Matlab R2017b

CentOS命令行安装Matlab R2017b

作者头像
HHTjim 部落格
发布2022-09-26 10:43:05
7750
发布2022-09-26 10:43:05
举报
文章被收录于专栏:HHTjim'S 部落格

CentOS命令行安装Matlab R2017b

作者:matrix 被围观: 5,363 次 发布时间:2019-07-26 分类:Linux | 无评论 »

这是一个创建于 1132 天前的主题,其中的信息可能已经有所发展或是发生改变。

现在应要求需要再服务器端环境安装matlab以进行更好测试达到理想之效果。

测试环境:本地客户端macOS,服务器centOS 需要20GB空余

下载matlab

https://pan.baidu.com/s/1wijZCXIWsNXgz0yYYBXHnQ#提取e8b2

刚开始用mac三方百度客户端进行下载,没有校验文件md5和基本信息就直接对z01,z02进行解压拿到iso镜像文件挂载没问题。浪费时间一上午进行安装出现输入输出错误原因就是iso不完整。

文件哈希:

代码语言:javascript
复制
$ md5sum R2017b_glnxa64.iso
0bbe62e90ba9aaf357c72ef93e81753c  R2017b_glnxa64.iso

若是本地上传到服务器最好使用rsync附加参数-rP --append来进行断点续传,要不然中断之后重新上传简直。。。

开始安装

需要系统有20GB的剩余空间(包含iso文件,mnt挂载空间,程序安装空间)才可安装,我已经尝试过很多遍了😂😂😂

挂载镜像文件到/mnt

代码语言:javascript
复制
$ mount -t iso9660 -o loop R2017b_glnxa64.iso文件路径 /mnt

如果挂载有问题可以考虑直接对iso进行解压缩:

代码语言:javascript
复制
$ sudo yum install p7zip p7zip-plugins 
$ 7z x ubuntu-16.10-server-amd64.iso

执行安装

若之前安装中断或者失败需要清空之前的安装数据,否则会报错。

删除之前安装的文件:rm -rf /usr/local/MATLAB

还有安装matlab之前java环境不是必须安装,matlab包里面会自带jre。

代码语言:javascript
复制
$ cd /mnt
$ sudo ./install -fileInstallationKey 09806-07443-53955-64350-21751-41297 -agreeToLicense yes -mode silent -activationPropertiesFile  MATLABR2017b_Linux_Crack目录中的license_standalone.lic文件路径

说明:

license_standalone.lic文件路径需自行替换

09806-07443-53955-64350-21751-41297为install_key.txt中的授权码

执行之后就等待安装,若显示要继续 请点击″是″。 要返回″否″。是否仍要继续?这些也不用管。

最终等待界面出现End - Successful.Finished即表示安装完成。

破解

安装完成之后执行程序/usr/local/MATLAB/R2017b/bin/matlab显示未激活状态

代码语言:javascript
复制
错误: 激活无法继续。您可能需要执行以下任一操作:
 1.设置 X11 显示,然后重新启动激活过程
 2.使用静默激活功能
 3.使用许可证中心激活

执行激活程序/usr/local/MATLAB/R2017b/bin/activate_matlab.sh -propertiesFile /usr/local/MATLAB/R2017b/activate.ini也没有用。

最后拷贝破解文件解决:

进入破解文件license_standalone.lic,libmwservices.so 所在目录

代码语言:javascript
复制
sudo cp license_standalone.lic /usr/local/MATLAB/R2017b/licenses/ 
sudo cp libmwservices.so /usr/local/MATLAB/R2017b/bin/glnxa64/

启动matlab

设置环境变量,避免每次执行/usr/local/MATLAB/R2017b/bin/matlab很麻烦

代码语言:javascript
复制
$ echo 'export PATH=/usr/local/MATLAB/R2017b/bin:$PATH' >> /etc/profile 
$ source /etc/profile

以后输入matlab就可以启动

卸载之前的iso:umount /mnt

若无法卸载参考https://www.cnblogs.com/sisimi/p/7700309.html来强制推出操作。

后台执行.m脚本

安装服务器版本的最终目的其实就是让其后台运行,但是后面测试的时候发现了很多坑。

比如手动执行nohup matlab -nojvm -nodesktop -nodisplay -nosplash -r test.m > ./logfile &

这样会导致日志输出结果出现大量错误warning的提示,我是直接用supervisord来守护进程,避免手动执行nohup操作。

如果你用nohup matlab -nodesktop -nosplash -nodisplay < test.m >logfile这种<形式来调用脚本那就要小心了,因为会出现更多的错误,像Undefined variable com or class com.mathworks.timer.TimerTask都是小事情,然而我这里是提示语法逻辑错误,感觉是脚本文件加载的时候出现字符问题,原因有很多,我这里没有具体进一步测试。我建议还是不要用<这种形式来执行.m脚本。

参考:https://blog.csdn.net/sethinking/article/details/88375995

还有一个就是执行matlab脚本目录的问题,如果像这样直接-r 'run("/root/test.m");' 执行入口脚本test.m很有可能会找不到其中依赖该目录下的自定义函数。建议-r 'cd /root;test;'这种形式来调用。

最终这样调用:

代码语言:javascript
复制
$ matlab  -nodesktop -nodisplay -nosplash -r 'cd /home/script/;main;'  >> /root/matlab_log_`date +"%Y%m%d"`.log

说明:

/home/script/main.m为脚本入口

这里没有使用-nojvm参数,也没有进一步测试我的脚本依赖是否可以不启动。

>> /root/matlab_log_date +"%Y%m%d".log为输出日志,名称为日期年月日

报错整理

./install:行269: /bin/glnxa64/install_unix: 输入/输出错误

确保iso镜像文件的完整性,需要知道iso的文件如果缺失一部分也是可以挂载的。😂

建议在Windows端用winrar点击R2017b_glnxa64.zip执行解压拿到R2017b_glnxa64.iso

archive is not a ZIP archive那就是空间不足的问题。

若非首次安装出现问题确保把之前的安装的文件都清空了

删除之前安装的文件:rm -rf /usr/local/MATLAB

出现libXt.so。。。Creating local MVM错误

代码语言:javascript
复制
MATLAB is selecting SOFTWARE OPENGL rendering.
Unrecognized MATLAB option "version".
Fatal Internal Error: Unexpected exception: 'N5boost16exception_detail10clone_implINS0_39current_exception_std_exception_wrapperISt13runtime_errorEEEE: Bundle#2 start failed: libXt.so.6: 无法打开共享对象文件: 没有那个文件或目录' in createMVMAndCallParser phase 'Creating local MVM'

这个问题今天上午才搞定,期间安装了很多包都不起作用。MD!!!

最终执行安装yum install libXt.x86_64才解决。

中间我也查看过libXt.so.6这个鬼玩意的确是有的,后面看到因为matlab都需要32位和64位的包,所以这鬼玩意一直报错。

也有可能再期间安装的一部分包是依赖必须的:

代码语言:javascript
复制
$ yum list  installed |grep libX

libX11.i686                             1.6.5-2.el7                    @base    
libX11.x86_64                           1.6.5-2.el7                    @base    
libX11-common.noarch                    1.6.5-2.el7                    @base    
libX11-devel.x86_64                     1.6.5-2.el7                    @base    
libXau.i686                             1.0.8-2.1.el7                  @base    
libXau.x86_64                           1.0.8-2.1.el7                  @base    
libXau-devel.x86_64                     1.0.8-2.1.el7                  @base    
libXdamage.x86_64                       1.1.4-4.1.el7                  @base    
libXdamage-devel.x86_64                 1.1.4-4.1.el7                  @base    
libXdmcp.i686                           1.1.2-6.el7                    @base    
libXext.i686                            1.3.3-3.el7                    @base    
libXext.x86_64                          1.3.3-3.el7                    @base    
libXext-devel.x86_64                    1.3.3-3.el7                    @base    
libXfixes.x86_64                        5.0.3-1.el7                    @base    
libXfixes-devel.x86_64                  5.0.3-1.el7                    @base    
libXft.x86_64                           2.3.2-2.el7                    @base    
libXft-devel.x86_64                     2.3.2-2.el7                    @base    
libXi.i686                              1.7.9-1.el7                    @base    
libXi.x86_64                            1.7.9-1.el7                    @base    
libXmu.i686                             1.1.2-2.el7                    @base    
libXp.i686                              1.0.2-2.1.el7                  @base    
libXp.x86_64                            1.0.2-2.1.el7                  @base    
libXrender.x86_64                       0.9.10-1.el7                   @base    
libXrender-devel.x86_64                 0.9.10-1.el7                   @base    
libXt.i686                              1.1.5-3.el7                    @base    
libXt.x86_64                            1.1.5-3.el7                    @base    
libXtst.i686                            1.2.3-1.el7                    @base    
libXtst.x86_64                          1.2.3-1.el7                    @base    
libXxf86vm.x86_64                       1.1.4-1.el7                    @base    
libXxf86vm-devel.x86_64                 1.1.4-1.el7                    @base 

这里整理一份本机已安装所有libX开头的包,自行取舍。

大量报错信息 Bad file descriptor 和 Warning: "Error reading character from command line"

参照上面后台执行.m脚本修改命令行调用的方式,去除nohup。使用supervisord工具来守护进程,亦或者不要输出日志。

参考:

https://blog.csdn.net/qq_32892383/article/details/79670871

https://ww2.mathworks.cn/matlabcentral/answers/131366-why-do-i-see-i-o-errors-when-installing-matlab-using-the-iso-image

https://ww2.mathworks.cn/matlabcentral/answers/98745-why-do-i-receive-an-error-message-archive-is-not-a-zip-archive-during-matlab-installation-on-[Linux](https://www.hhtjim.com/category/linux)

https://www.jianshu.com/p/a10397fcfb1d

https://blog.csdn.net/Xiao_Song_PKU/article/details/82700228

https://www.cnblogs.com/yaoyaoliu/p/6798463.html

https://[Linux](https://www.hhtjim.com/category/linux).cn/article-7992-1.html

https://blog.csdn.net/qq_39187538/article/details/88676283

https://www.cnblogs.com/sisimi/p/7700309.html

https://www.centos.org/forums/viewtopic.php?t=31436

https://ww2.mathworks.cn/matlabcentral/answers/63751-how-do-i-get-matlab-running-in-batch-mode-to-only-output-the-results-of-disp-fprintf-etc-and-no

https://ww2.mathworks.cn/matlabcentral/answers/66793-problem-running-matlab-script-to-background

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CentOS命令行安装Matlab R2017b
    • 下载matlab
      • 开始安装
        • 破解
          • 启动matlab
            • 后台执行.m脚本
              • 报错整理
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档