1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(メモ) ArchLinux に Scilab をインストールする際にハマるポイント

Last updated at Posted at 2018-07-20

Scilab の用途を知っていて ArchLinux を既に使っている方は序章をすっ飛ばしてかまいません。

そもそもScilab って何?

商用数値解析アプリ MATLAB みたいなもの。GNU Octave も同類。私自身は MATLAB を使ったことがないので本当にそうなのかはわかりかねますが、ちょっと調べてみたら Octave は MATLAB クローンを目指していて、Scilab のほうはそこまで互換性を求めていない感じらしい。1
本家 MATLAB はここ最近、無料の Octave や Scilab に追い上げられているので、自動車/ロボット/半導体製造/通信キャリアといった金を持っている企業向けの設計/プロトタイピング/テスト用プラグインに注力している模様。

そして カテゴリ的には R を代表とする統計処理ソフト群も似たようなもの。2

数値解析ソフトはリアルタイム処理が必要な工業系、統計処理ソフトはデータベースからデータを持ってくるバイオ系/人文科学系御用達ってところですかね。

ArchLinux ってどんなディストリ?

詳細は日本語公式を見てください。
以下、個人的な感想

  • とにかく軽い3
  • 適度なローリングアップデートでOSS新バージョンへの対応が早い4
  • メジャーなアプリ/ライブラリに関してはコンパイル不要でサクサクアップデート可能56

なぜ 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 使ったほうが環境構築面では圧倒的に楽。
  • 起動確認までしかしていないので、言語の習得、パフォーマンス評価等は一切してない。
  1. 最大のポイントは、GUI が Javaベース、ってこと。

  2. ここ10年で無料の R が主流になったせいで、商用統計処理ソフトはもう完全に瀕死の状態ですな・・・

  3. systemd-analyze time コマンドによる計測で 10秒台がザラ。リモートファイルシステムを自動マウントしない、といった起動プロセスのシェイプを施せば5秒台なんて場合も。

  4. ミニマリズム、という同じポリシーを持つものの、「枯れた技術」で安定性を重視する Slackware より良い点(私にとって)

  5. gcc とか llvm のコンパイルで多大な時間を浪費させられる Gentoo よりも圧倒的に良い点

  6. マイナーなものに関しては AUR から git 経由でソースダウンロード、コンパイル、パッケージ作成、インストール という手順を踏む必要があるものの、コマンド一発で終了するので面倒ではない。

  7. それにしてもなんで Java とか Ocaml まで必要になるんだよ(怒り)。Java は予めインストール済みだったし、Ocaml は純正パッケージが存在するからまだ良しとしようか(だから純正パッケージになっていないんだな・・・)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?