High SierraでSciLabを再び動かすまで


macOSをバージョンアップし、macOS High Sierra(10.13.1)に更新したところ、SciLab 6.0.0が動作しなくなった。
Scilabの公式バージョンアップを待てない方に。

更新情報

-->6.0.1がリリースされました。補足説明を追加した新しい記事を書きました。こちら「Mac(High Sierra)でSciLabを動かすまで」をご覧ください。
-->2018/11/28:macOS Mojave(10.14.1)にアップデートしたところ、再びSciLab6.0.1が起動しなくなりましたが、下記(手順1)のライブラリの更新で再び起動するようになりました.
-->2019/2/24:macOS Mojave(10.14.3)に対応したSciLab6.0.2がリリースされました

(手順1)ライブラリの更新

参考 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/

補足

適用前、コンソールから起動すると以下のエラーが出ていました。
libBLASが依存している線形代数のライブラリに問題があるようです。

dyld: Symbol not found: _double_general_add
  Referenced from: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
  Expected in: /Applications/scilab-6.0.0.app/Contents/MacOS/lib/thirdparty/libBLAS.dylib
 in /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib

(手順2)JREのインストール

Java 6が必要と言われた場合の処理
参考 https://oliverdowling.com.au/2015/10/09/oracles-jre-8-on-mac-os-x-el-capitan/

作業

(2-1) Oracleから最新のJREのtar.gzバージョンをダウンロード
http://www.oracle.com/technetwork/java/javase/downloads/index.html
補足:Java SE (Java Standard Edition)の中の
     JRE (Java Runtaime Enviroment)の
     tar.gz を選ぶこと
(2-2) 解凍してplistを書き換える

cd ~/Downloads/
tar xzf jre-9.0.1_osx-x64_bin.tar
cd jre-9.0.1.jre/

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

(2-3)JREをインストール

sudo mv "`pwd`" /Library/Java/JavaVirtualMachines/

(2-4)

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

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

(2-5)こちらも必要かも

sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk
sudo mkdir -p /System/Library/Java/Support/Deploy.bundle

動作確認

起動するとこんな感じのメッセージがでますが、Try anywayで起動しました。