MATLAB R2016b 静默安装、激活(Ubuntu 16.04)

MATLAB R2016b 静默安装、激活(Ubuntu 16.04)

概要

无图形界面环境下,静默安装、激活MATLAB。R2016b的iso安装包分两份,静默安装时需要合并为一份,否则要处理换碟问题。

注意:本文的所有命令使用root权限执行。

系统环境

Ubuntu 16.04

文件准备

下载安装包(放置在”~/Matlab/”目录下):
1. R2016b_glnxa64_dvd1.iso
2. R2016b_glnxa64_dvd2.iso

准备激活码及激活证书。

解压安装文件

本文使用7zip作为解压工具,分别解压两个dvd,得到R2016b_installerR2016b_dvd2两个文件夹。

# 安装7-Zip准备解压
apt-get install p7zip-full -y
# 定义安装路径,准备解压两个DVD
MATLAB_HOME=/usr/local/MATLAB
# dvd1
mkdir -p "${MATLAB_HOME}/R2016b_installer"
7z x ~/Matlab/R2016b_glnxa64_dvd1.iso -r -o"${MATLAB_HOME}/R2016b_installer"
# dvd2
mkdir -p "${MATLAB_HOME}/R2016b_dvd2"
7z x ~/Matlab/R2016b_glnxa64_dvd2.iso -r -o"${MATLAB_HOME}/R2016b_dvd2"

然后将dvd2中的archives文件夹合并到dvd1的archives文件夹中,再将隐藏文件.dvd2复制到dvd1的文件夹中,完成文件合并。

# 合并
rsync -a --progress "${MATLAB_HOME}/R2016b_dvd2/archives/" "${MATLAB_HOME}/R2016b_installer/archives"
mv "${MATLAB_HOME}/R2016b_dvd2/.dvd2" "${MATLAB_HOME}/R2016b_installer/"
# 清理一下dvd2
rm "${MATLAB_HOME}/R2016b_dvd2" -rf

创建安装所需文件

创建${MATLAB_HOME}/etc文件夹,将激活文件解压到里面。

### 准备激活文件 ###
apt-get install unrar -y
mkdir -p "${MATLAB_HOME}/etc"
unrar x ~/Matlab/Matlab-2016b-Linux64-Crack.rar "${MATLAB_HOME}/etc"

创建安装配置installer_input.txt,静默安装时使用-inputFile参数将其传给安装程序。解压出来的安装文件中有installer_input.txt文件的模板,具体参数意义可以参照该模板的说明。这里要注意的是,很多教程里配置文件中有#开头的“注释”,这种不合法的语句会导致静默安装失败,启动图形界面进行安装。
在下面的安装配置中,重点关注:
1. destinationFolder(MATLAB安装路径)
2. fileInstallationKey(激活码,和激活证书文件配对,注意别用到Matlab Production Server的)
3. activationPropertiesFile(激活脚本,待会创建)
4. licensePath(激活证书文件路径,和激活码配对)

### 写入安装配置 ###
MATLAB_INSTALLER_INPUT="${MATLAB_HOME}/etc/installer_input.txt"
touch "${MATLAB_INSTALLER_INPUT}"
echo "destinationFolder=${MATLAB_HOME}/R2016b"                  >> "${MATLAB_INSTALLER_INPUT}"
echo "fileInstallationKey=09806-07443-53955-64350-21751-41297"  >> "${MATLAB_INSTALLER_INPUT}"
echo "agreeToLicense=yes"                                       >> "${MATLAB_INSTALLER_INPUT}"
echo "outputFile=/tmp/mathwork_install.log"                     >> "${MATLAB_INSTALLER_INPUT}"
echo "mode=silent"                                              >> "${MATLAB_INSTALLER_INPUT}"
echo "activationPropertiesFile=${MATLAB_HOME}/etc/activate.ini" >> "${MATLAB_INSTALLER_INPUT}"
echo "licensePath=${MATLAB_HOME}/etc/license_standalone.lic"    >> "${MATLAB_INSTALLER_INPUT}"

创建激活文件activate.ini,安装结束后,使用激活程序的-propertiesFile参数将其传入。其中licenseFile为激活证书文件路径。

### 写入激活配置 ###
MATLAB_INSTALLER_ACTIVATE="${MATLAB_HOME}/etc/activate.ini"
touch "${MATLAB_INSTALLER_ACTIVATE}"
echo "isSilent=true"                                         >> "${MATLAB_INSTALLER_ACTIVATE}"
echo "activateCommand=activateOffline"                       >> "${MATLAB_INSTALLER_ACTIVATE}"
echo "licenseFile=${MATLAB_HOME}/etc/license_standalone.lic" >> "${MATLAB_INSTALLER_ACTIVATE}"

开始安装

修改文件权限,保证安装程序顺利运行。

mkdir -p "${MATLAB_HOME}/R2016b"
chmod +x "${MATLAB_HOME}/R2016b_installer/install"
chmod +x "${MATLAB_HOME}/R2016b_installer/bin/glnxa64/install_unix"
chmod +x "${MATLAB_HOME}/R2016b_installer/sys/java/jre/glnxa64/jre/bin/java"
chmod +w "${MATLAB_INSTALLER_INPUT}"
chmod +w "${MATLAB_INSTALLER_ACTIVATE}"

启动安装程序。

# 安装!
${MATLAB_HOME}/R2016b_installer/install -inputFile "${MATLAB_INSTALLER_INPUT}"

拷贝新文件以激活。注意激活脚本的-isSilent参数,保证该脚本不会执行图形化激活程序。

# 备份后拷贝新文件
mv "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwservices.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwservices.so.bak"
mv "${MATLAB_HOME}/R2016b/bin/glnxa64/libinstutil.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libinstutil.so.bak"
mv "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwlmgrimpl.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwlmgrimpl.so.bak"
cp "${MATLAB_HOME}/etc/R2016b/bin/glnxa64/libmwservices.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwservices.so"
cp "${MATLAB_HOME}/etc/R2016b/bin/glnxa64/libinstutil.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libinstutil.so"
cp "${MATLAB_HOME}/etc/R2016b/bin/glnxa64/libmwlmgrimpl.so" "${MATLAB_HOME}/R2016b/bin/glnxa64/libmwlmgrimpl.so"

# 激活!
${MATLAB_HOME}/R2016b/bin/activate_matlab.sh -isSilent -propertiesFile "${MATLAB_INSTALLER_ACTIVATE}"

写入PATH变量。

### 写入PATH ###
echo "export PATH=${MATLAB_HOME}/R2016b/bin:$PATH" >> /etc/profile
source /etc/profile

收工

echo "收工!"
exit 1

你可能感兴趣的:(linux)