写了两篇破事水,我在功能和外观上简单优化了Ubuntu系统。使用虚拟机的好处就是在不断学习的过程中,遇到不慎损坏了系统的时候,能很快使用备份恢复为作死前的样子。
MATLAB是我在本科阶段用的最多的编程语言,它不仅是一个数值计算的高级程序语言,它拥有的丰富的Toolbox可以使它在各种领域发挥作用,还有一个配套软件包Simulink,提供一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
MATLAB也提供了MacOS、Linux等平台的版本,它是闭源软件,并且收费,它的安装和破解也同样复杂。去年我得到了一份MATLAB r2016b的Ubuntu版本,为两个dvd文件和一个破解压缩包,在百度云上搜索就能获得。经过尝试安装破解,亲测可用。于是这次重新配置Ubuntu的时候,想认真记录下来步骤,供大家参考。当然为了防止安装出现严重问题,我还是有防备地在客户机上备份了虚拟机的硬盘文件。
当然这在Ubuntu占得空间相当大,而之前分配的32GB空间明显不够,于是我看着480GB的SSD里不多的剩余空间咬了咬牙…
在虚拟机里硬盘扩容的步骤为:
- 1、暂停虚拟机,点击面板中“设备”的“硬盘”选项,直接打开了“虚拟机设置”窗口中的硬盘设置。
- 2、点击“扩展磁盘容量”右边的“扩展”按钮,打开新窗口。
- 3、将“最大磁盘大小”扩大到80GB或以上,我选择了96GB。
完成后重新开始虚拟机,在虚拟机中打开GParted,此时已经多出了64GB的空间。但是/dev/sda1分区的后面有一个/dev/sda2下的/dev/sda5作为交换分区。此时不能直接扩容/dev/sda1,只能在交换分区后新增/dev/sda3作为新空间,或者删除交换分区,直接扩容/dev/sda1。
因为交换分区用处不大,所以如果非要扩展成为一个盘,在/dev/sda2上右键删除是可行的。然而强迫症的我最终选择了重新建立交换空间。具体操作是:
- 1、右键linux-swap栏,选择“禁用交换空间”,我们可以看到/dev/sda5右边的锁被去掉了。
- 2、右键删除linux-swap分区。
-
3、右键删除extended分区,至此/dev/sda2被彻底删除,此时/dev/sda1才可扩展。
- 4、右键/dev/sda1区域,点击“更改大小/移动”,在新的窗口中直接拖移指针,或者填入数字,使得“之后的空余空间”为“4096”,这是留给新的交换分区的4GB空间,也可以自定义大小。
- 5、在最后的4GB空间中右键“新建”,在“创建为”选项选择“扩展分区”,此分区就是后来的/dev/sda2。
- 6、在这个扩展分区下的“未分配”一栏右键“新建”,在“创建为”选项选择“逻辑”,此分区就是后来的/dev/sda5。将此逻辑分区的文件系统右键格式化为linux-swap,点击操作栏上的对勾保存。
- 7、右键linux-swap选择“启用交换空间”,至此,分区扩容就完成了。
在参考书的第5章,有对磁盘管理的命令操作与可视化操作(尤其是GParted)就很详细的说明。
接下来就开始准备MATLAB的正式安装了,正常的安装使用mount
挂载iso的方式,mount命令格式如下,在参考书得5.2.3章也有详细讲解。
mount -t 类型 -o 挂接方式 源路径 目标路径
挂载第一张ISO的命令为:
mkdir /~/MATLAB1
sudo mount -t auto -o loop /~/Matlab R2016b/Linux/R2016b_glnxa64_dvd1.iso /~/MATLAB1
当然也可以不使用挂载的方式。使用时将dvd1和dvd2解压到同一个文件夹,再将文件夹拖移(如果不是虚拟机则可用U盘传输)到Ubuntu系统中。
在文件夹所在位置打开终端输入sudo ./install
,启动安装程序。
接下来的所有步骤都和Windows版本的一致。在crack文件夹的readme提供了两种破解方法,我选择了方法一:standalone,具体步骤如下:
- 1、选择安装方法为“使用文件安装密钥”,点击“下一步”。
- 2、在提供文件安装密钥这里选择“我已有我的许可证的文件安装密钥”,并输入readme提供的序列号,持续点击下一步直至安装。
如果用挂载DVD的方式安装,一般来说80%的时候会提示插入第二张光盘,此时需要重新开启一个终端,输入命令:
sudo mount -t auto -o loop /home/gzk/Matlab R2016b/Linux/R2016b_glnxa64_dvd2.iso /home/gzk/MATLAB1
这样,挂载目录就会仍然是/~/MATLAB1,这样才能接着进度继续安装。安装完毕后点击确定关闭窗口。
-
3、Ubuntu安装MATLAB有一个很奇葩的地方在于:之前花很大功夫安装完的都只是将必需文件安装至硬盘,而启动程序却要在软件中心中下载安装。
但是不知什么原因,我的下一步不知道如何进行了,从软件中心点击启动也没有反应,后来试着在终端执行sudo apt -f install
弹出了可视化的交互窗口,才解决问题。
这里特别说一下,因为我当时直接关闭了终端,再次打开的时候出现了无法获得锁的错误,而删除lock文件再执行sudo apt -f install
却发现报错
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
正在设置 matlab-support (0.0.21) ...
debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
dpkg: 处理软件包 matlab-support (--configure)时出错:
子进程 已安装 post-installation 脚本 返回错误状态 1
在处理时有错误发生:
matlab-support
E: Sub-process /usr/bin/dpkg returned an error code (1)
打开软件中心也发现MATLAB启动器被卸载了,重新安装启动仍报错。最后在Ubuntu社区论坛得到的解决方法是重启系统,亲测有效。
- 4、输入
sudo apt -f install
在Location of MATLAB installation(s):下填/usr/local/MATLAB/R2016b
,用方向键选择确定并按回车键继续。 - 5、下两个步骤是关于选择启动用户和是否重命名GCC库的,这里不输入任何内容直接确定。
- 6、图形界面消失后,继续从软件中心打开MATLAB,启动软件激活界面。
选择“在不使用Internet的情况下手动激活”,点击下一步选择激活文件。
这时候我们就要用root权限在在终端进行复制license文件操作了。我们需要将license_standalone.lic文件复制到MATLAB安装目录里新建的licenses目录下,再将/R2016b/bin/glnxa64文件夹下的几个文件全部复制到安装目录里的同名位置。具体操作如下:
- 7、在安装目录里新建licenses文件夹
cd /usr/local/MATLAB/R2016b
sudo mkdir licenses
- 8、在Crack文件夹下打开终端,输入如下指令:
sudo cp license_standalone.lic /usr/local/MATLAB/R2016b/licenses
- 9、在Crack文件夹的R2016b/bin/glnxa64文件夹中打开终端,输入如下指令:
sudo cp ./* /usr/local/MATLAB/R2016b/bin/glnxa64
此时在软件激活界面输入license_standalone.lic的地址确定,可能会造成激活失败,没关系忽略掉,直接关闭。下一次启动的时候,软件就能正常打开了。
软件使用的归档空间非常大,将近40GB,因为主程序和启动程序都是分开安装的,所以卸载操作也比其他软件麻烦。
这里提供了来自MATLAB answers的卸载步骤
- 1、启动反激活程序
sudo ./usr/local/MATLAB/R2016b/bin/deactivate_matlab.sh
- 2、删除MATLAB的所有文件:
sudo rm -rf /usr/local/MATLAB/R2016b
- 3、删除所有MATLAB的关联文件:
sudo rm /usr/local/bin/matlab /usr/local/bin/mcc /usr/local/bin/mex /usr/local/bin/mbuild
- 4、在软件中心中移除MATLAB启动器。
参考文章:
反激活安装 - MATLAB & Simulink - MathWorks 中国
卸载 MathWorks 产品 - MATLAB & Simulink - MathWorks 中国
其中挂载DVD安装部分也参考了Ubuntu 16.04 LTS下安装MATLAB R2016b