序
Scilab の用途を知っていて ArchLinux を既に使っている方は序章をすっ飛ばしてかまいません。
そもそもScilab って何?
商用数値解析アプリ MATLAB みたいなもの。GNU Octave も同類。私自身は MATLAB を使ったことがないので本当にそうなのかはわかりかねますが、ちょっと調べてみたら Octave は MATLAB クローンを目指していて、Scilab のほうはそこまで互換性を求めていない感じらしい。1
本家 MATLAB はここ最近、無料の Octave や Scilab に追い上げられているので、自動車/ロボット/半導体製造/通信キャリアといった金を持っている企業向けの設計/プロトタイピング/テスト用プラグインに注力している模様。
そして カテゴリ的には R を代表とする統計処理ソフト群も似たようなもの。2
数値解析ソフトはリアルタイム処理が必要な工業系、統計処理ソフトはデータベースからデータを持ってくるバイオ系/人文科学系御用達ってところですかね。
ArchLinux ってどんなディストリ?
詳細は日本語公式を見てください。
以下、個人的な感想
なぜ ArchLinux に Scilab を入れようと?
R と Octave を使ったことはあったのですが、Scilab を使ったことはなかったので、比較・評価してみよう、という安易な考えでした。・・・
ArchLinux に Scilab をインストールする
R や Octave は純正パッケージに登録されているけれど、Scilab は純正パッケージに登録されていないので、AUR からパッケージ作成用ファイル群をダウンロードして、自分でパッケージをコンパイルする。これが地獄の始まりだった。
[hoge@fuga ~]$ git clone https://aur.archlinux.org/scilab.git
(git の出力省略)
[hoge@fuga ~]$ cd scilab
[hoge@fuga scilab]$ makepkg -si
(以下、エラーメッセージ多数)
[hoge@fuga scilab]$
ハマりポイントその1: 依存関係多すぎでビルドまでたどり着かない・・・
ArchLinux のパッケージをビルド→インストールしようとする際、依存していて未インストール状態のプログラム/ライブラリが純正パッケージに登録されている場合は素直にインストールしてくれる。ただし、AUR にしか登録されていないライブラリに依存している場合は、そちらのパッケージも自前でコンパイルする必要が出てくる。結局、Scilab のためだけに新たに12,3個ライブラリをビルドした。7
ハマりポイントその2: コンパイルに時間がかかりすぎる・・・
今回インストールした環境は gcc のコンパイルに2時間弱もかかる貧弱 VMWare 仮想マシンですが、gcc よりも多くの時間(2.5時間)かかりりました。ArchLinux を使う意味が失われる・・・
ハマりポイントその3: 起動しねぇ(第1段階)・・・
[hoge@fuga ~]$ scilab
(libjava.so が見つからない、という内容のエラーメッセージ)
[hoge@fuga ~]$
ああ、そうですか・・・こういうことでしょ?
[hoge@fuga ~]$ cat | sudo tee /etc/ld.so.conf.d/java.conf
/usr/lib/jvm/default-runtime/lib
[hoge@fuga ~]$ sudo /sbin/ldconfig
[hoge@fuga ~]$ source /etc/profile
[hoge@fuga ~]$ scilab
(libjvm.so が見つからない、という内容のエラーメッセージ)
[hoge@fuga ~]$
ファッ!
[hoge@fuga ~]$ find /usr/lib/jvm/default-runtime -name libjvm.so
/usr/lib/jvm/default-runtime/lib/server/libjvm.so
[hoge@fuga ~]$ cat | sudo tee -a /etc/ld.so.conf.d/java.conf
/usr/lib/jvm/default-runtime/lib/server
[hoge@fuga ~]$ sudo /sbin/ldconfig
[hoge@fuga ~]$ source /etc/profile
[hoge@fuga ~]$ scilab
(不正なリフレクトが発生したから JVM がメインクラスを作成できねぇよ! という内容のスタックトレースが長大なエラーメッセージ。)
[hoge@fuga ~]$
なんじゃこりゃ・・・
ハマりポイントその4: 起動しねぇ(第2段階)・・・
ん?もしかして
Java on ArchLinux
- OpenJDK 7-10 まで幅広く対応。
- 複数メジャーバージョンをインストールしておいて、選択可能。
- 専用の archlinux-java コマンドでデフォルトのバージョンを設定可能
Scilab をインストールした環境に入っている Java は Java9 のみ。
[hoge@fuga ~]$ sudo pacman -S jre8-openjdk jre8-openjdk-headless
(インストール)
[hoge@fuga ~]$ sudo archlinux-java set java-8-openjdk
[hoge@fuga ~]$ scilab
(初回起動のせいか時間はかかったもののなんとか起動)
[hoge@fuga ~]$
まとめ
- Scilab 6.0.x を実行するためには Java8 必須。
- 最終的に、Octave 使ったほうが環境構築面では圧倒的に楽。
- 起動確認までしかしていないので、言語の習得、パフォーマンス評価等は一切してない。
-
最大のポイントは、GUI が Javaベース、ってこと。 ↩
-
ここ10年で無料の R が主流になったせいで、商用統計処理ソフトはもう完全に瀕死の状態ですな・・・ ↩
-
systemd-analyze time コマンドによる計測で 10秒台がザラ。リモートファイルシステムを自動マウントしない、といった起動プロセスのシェイプを施せば5秒台なんて場合も。 ↩
-
ミニマリズム、という同じポリシーを持つものの、「枯れた技術」で安定性を重視する Slackware より良い点(私にとって) ↩
-
gcc とか llvm のコンパイルで多大な時間を浪費させられる Gentoo よりも圧倒的に良い点 ↩
-
マイナーなものに関しては AUR から git 経由でソースダウンロード、コンパイル、パッケージ作成、インストール という手順を踏む必要があるものの、コマンド一発で終了するので面倒ではない。 ↩
-
それにしてもなんで Java とか Ocaml まで必要になるんだよ(怒り)。Java は予めインストール済みだったし、Ocaml は純正パッケージが存在するからまだ良しとしようか(だから純正パッケージになっていないんだな・・・) ↩