前段时间在服务器上使用matlab,在激活的时候遇到了一些和自己个人电脑上不一样的情况,在搞清楚之后记录一下。
References:
电子文献:
https://ww2.mathworks.cn/matlabcentral/answers/99067-why-do-i-receive-license-manager-error-9
问题
前段时间在学校的ubuntu服务器上安装了matlab,按照自己之前的方法在/usr/local/MATLAB/version/bin
中使用./activate_matlab.sh
激活并使用matlab
命令直接运行,却卡在MATLAB is selecting SOFTWARE OPENGL rendering
之后报错License Manager Error -9
。
我们知道,matlab激活时指定的用户是需要和本机用户名一致的,由于之前服务器上有学姐安装过matlab,我觉得可能是激活了她的用户名导致我无法使用,因此我反激活之前的用户名之后,尝试使用root作为指定用户重新激活并使用sudo matlab
命令运行matlab,结果却显示没有已激活的许可证。
后来想想的确不应该是这个问题,因为matlab每次激活会覆盖之前的,假如是因为别的用户名导致我无法运行的话,我激活后应该就能解决,然而我却依旧不能运行。
于是,我直接在bin
中打开matlab的执行文件,即./matlab
(如果之前用root激活的话则输入sudo ./matlab
就能执行),打开是打开了,但打开过程比较慢且出现一长串报错。
解决办法
在搞清楚matlab激活的要求之后,我还是使用自己的用户名去激活matlab。当然,别的用户也可以使用自己的用户名激活,经检验,这样并不会影响大家共同的使用。
然而,此时仍旧只能在bin
中打开matlab并且会有如上文图中所示的报错。搜索之后发现,是我没有把.matlab
的整个目录设为可写。注意,这个目录指的是用户主文件夹下的目录而不是/usr/local
下面的安装目录。
因此,只需赋予更多权限,就不会出现之前的问题了。可以在终端中执行如下语句。
1 | sudo chmod -R 777 /home/***/.matlab |
注意:这里的
***
是用户名,-R
是为了对整个文件夹操作。
如何查看本机用户名
一般情况下,执行matlab激活程序时会自动给出你的用户名,这样激活之后就可以直接使用。然而,有时候用户名并没有给出而需要自己填,而有可能不确定自己该填啥,这时候可以就通过如下方式查询。
- 还是执行激活程序,先不选择使用Internet自动激活,而是选择“在不使用Internet的情况下手动激活”。
- 点击下一步之后,选择“我没有许可证文件,帮我执行后续步骤”。
- 再到下一步,就可以看到用户名了,直接复制。
- 返回到开始的地方,选择“使用Internet自动激活”,之后还是一路默认操作,在需要指定用户时把之前的用户名粘贴上即可。