Help us understand the problem. What is going on with this article?

macOSでSciLabを動かすまで

(更新情報)
2019/02/24:macOS Mojave(10.14.3):scilab 6.0.2で対応
「macOS High SierraでSciLabを動かすまで」からタイトル変更しました。
2018/11/28:macOS Mojave(10.14.1):ライブラリの追加も必要

(はじめに)
 この記事はScilab 6.0.1をmacOS High Sierraにインストールする方のためのメモです。
かつてはすんなりインストールできたscilaboですが、最近では一手間かかるようになってしまいました*。きっと困っている人も多いと思います。
*mojaveに対応したscilab 6.0.2がリリースされました。今はすんなりインストールできます(2019/2/24)

 私は、scilabを、フィルタ設計や制御系のシミュレーション、時系列データ処理などに使っています。かつては、perlやエクセルを使っていましたが、scilabを使うようになって、大変効率が上がりました。こんなに便利なツールを使わないのはもったいない。もっとたくさんの人がscilabに触れてもっと普及して欲しいと思っております。
 
 この記事は、以前SciLab 6.0.0をインストールしたときに書いた「High SierraでSciLabを再び動かすまで」 に説明を追加したものです。

Scilabのインストール

なにはともあれ、ダウンロードしましょう。

1.ダウンロードはこちらから http://www.scilab.org
2.scilab-6.0.1-x86_64.dmg をクリック
3.鳥のアイコン(Scilab-6.0.1)をApplocationsのアイコンにドラッグ
4.Finderの左側(デバイス)にscilab-6.0.1の三角をクリックして「アンマウント」

アプリケーションを開けるようにする

鳥のアイコンをクリックしても「“scilab”は、App Store からダウンロードされたものでないため開けません。」とつれないダイアログがでるだけです。

1.control キーを押しながら鳥のアイコン(Scilab-6.0.1)をクリック

Java 6が必要と言われたら

「このJavaアプリケーションを開くには、以前のJava SE 6ランタイムをインストール必要があります」というダイアログが表示されます。このダイアログの「詳しい情報」のボタンをクリックするとAppleのページに飛びます。

ここには、難しいことがたくさん書いてあり、最後に「常に最新バージョンのソフトウェアをお使いください」とのこと。そこで、仕方なくオラクルのページのリンクにとぶと、(一見簡単そうに見えるけれども、Javaの専門家以外の人はきっとたじろぐ)ページが現れます。ここで途方にくれる人も少なくないのでは。

参考 こちらがOliverさんの解説記事で、Scilab用にJREをインストール方法が書いてあります。
https://oliverdowling.com.au/2015/10/09/oracles-jre-8-on-mac-os-x-el-capitan/

(1) Oracleから最新のJREをダウンロード

http://www.oracle.com/technetwork/java/javase/downloads/index.html

いろいろありますがどれをえらべば良いでしょうか?
Java SE/EE/MEとかいろいろあり、バージョンがあり、そこにはJDKとかJREとかあります。

ダウンロードページにちゃんと選び方が書いてありますが、そういわれてもね。
・最初のポイントは、MacなどPC向けはスタンダードエディション(SE)を選ぶこと。
・次のポイントはJDKかJRE,Server JREの選択です。開発者向けがJDK,使うだけならJREということになります。なので、基本的には、SEのJREで、新しめの安定バージョンを選べばOK。2018/10/13の時点では,Java SE 10.0.2 JRE。

macOS版には拡張子がdmgのものとtar.gzがありますが、
ダウンロード後にplistを編集するためtar.gzを選びます。

補足:Java SE (Java Standard Edition)の中の
     JRE (Java Runtaime Environment)の
     tar.gz を選べばよいかと。
     

(2) 解凍してplistを書き換える

Rich Troutonさんのblogの記事Modifying Oracle’s Java SDK to run Java applications on OS Xによれば、ダウンロードしたJREそのままでは、Webページに埋め込んだjava plug-inでしか使えない。このため、アプリケーションやコマンドラインからJavaを使うためには、plistを変更する必要があるとのこと。

plistを修正する手順_by_Oliverさん
cd ~/Downloads/
tar xzf jre-10.0.1_osx-x64_bin.tar
cd jre-10.0.1.jre/

# 変更前の内容を確認する(追加しました)
less Contents/Info.plist


defaults write "`pwd`/Contents/Info.plist" JavaVM -dict-add 'JVMCapabilities' '<array><string>JNI</string><string>BundledApp</string><string>CommandLine</string></array>'

# テキストエディタで書き換えた内容を確認するため次の操作が必要
chmod 0664 Contents/Info.plist
plutil -convert xml1 Contents/Info.plist
# 変更後の内容を確認する(追加しました)
less Contents/Info.plist

(3)JREをインストール

by_Oliverさん
sudo mv "`pwd`" /Library/Java/JavaVirtualMachines/
#ここでパスワード入力を求められます

(4)バックワードコンパチビリティのためのリンク

by_Oliverさん
mkdir -p Contents/Home/bundle/Libraries
cd Contents/Home/bundle/Libraries
ln -s ../../lib/server/libjvm.dylib libserver.dylib

私の場合、ここまででオッケーでした。

(5) Mojaveの場合(ライブラリの追加)

自己責任でお願いします。
参考 http://bugzilla.scilab.org/show_bug.cgi?id=15307

作業

(1-1) libBLAS.dylib を入れ替え
(1-2) libPng.dylib" をコピー

コンソールから
cd /Applications/scilab-6.0.0.app/Contents/MacOS/
cp /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib lib/thirdparty/
cp /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib  lib/thirdparty/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away