はじめに
自分のノートPCでは限界が来て, 今回研究室のlinux環境にMatlabやらUnity, UEやらをインストールすることになった.
Matlabをlinuxにインストールして起動するまでの過程をまとめてみた.
(注意: これは研究室の作業環境にインストールした物である. そのため各ユーザ毎にインストールを想定して作業したログである.)
Ubuntu ver : 20.04
MATLAB ver : R2021a
インストール作業
MathWorksのアカウント作成
これをしないと始まらない.
大学が提携していたため, その手順に従って作成した.
このアカウントのライセンスを用いて後のインストール作業を行う.
割愛~
zipファイルからMatlabをインストールする
大学のLinuxにvnc接続して作業を行なった.
MathWorksの公式ページに飛んで, 登録した学生アドレスを用いてログインする.
インストールしたいリリースとlinuxを選択.
~/Downloadsにzipファイルをダウンロード.(R2021aを選択した)
$ cd ~/Downloads
$ mkdir matlabR2021a_unzipdir
$ mv ~/Downloads/matlab_R2021a_glnxa64.zip ~/Downloads/matlabR2021a_unzipdir
(この作業は個人的にDownloads内にファイルがばら撒かれたくないため行なった, 気にならなければ行わなくても大丈夫)
$ cd ~/matlabR2021a_unzipdir
$ unzip matlab_R2021a_glnxa64.zip
zipを作成したディレクトリ内で解凍する.
$ mkdir /xxx/xxxx/xxxx/MatlabR2021a
matlabをインストールしたい場所にフォルダを作成しておく.
$ ./install
公式ページの手順に従い,
- 学生アカウントへのログイン
- 学生アカウントのライセンスを選択
- Select destination folderは作成した/xxx/xxxx/xxxx/MatlabR2021aを選択
- インストールしたい製品を選択
- Select optionsでは"Create symbolic links to MATLAB scripts in: "は選択せずに進む
- 最終確認を行いインストールを開始する.
製品と環境によっては少々~かなり時間がかかると思われる.
MATLABの起動
公式ページを参考に.
$ cd /xxx/xxxx/xxxx/MatlabR2021a/bin/
$ ./matlab
でMatlabが起動される.
しかし初回時は起動できず,以下が出力された.
$ ./matlab
MATLAB is selecting SOFTWARE OPENGL rendering.
Cannot locate or initialize class com/mathworks/jmi/OpaqueJavaInterface.
java.lang.NoClassDefFoundError: com/mathworks/jmi/OpaqueJavaInterface
Caused by: java.lang.ClassNotFoundException: com.mathworks.jmi.OpaqueJavaInterface
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
調査すると, いくつかパッケージをインストールする必要がある様だった.
オプション -glnx86
を付与してもう一度起動してみると起動できた.
$ ./matlab -glnx86
後日, オプションなしで起動してみたところ, 一応起動は確認できた.
(パッケージはインストールしてない...)
$ ./matlab
MATLAB is selecting SOFTWARE OPENGL rendering.
Gtk-Message: xx:xx:xx.xxx: Failed to load module "appmenu-gtk-module"
補足
動作確認はまだしていないため, 色々問題が起こる可能性もあるが, ひとまずインストールから起動まで確認できた.
後に問題が発生した場合はそちらもまとめたいと思う.