スペクトルを表示しようとmusreditのボタンを押すと以下のような怪しいダイアログが出てしまう。
musrviewで直に.msrファイルを開こうとしてもエラーが。
% musrview test-histo-ROOT-NPP.msr
dyld: Library not loaded: /opt/local/lib/libgsl.25.dylib
Referenced from: /Users/*****/Applications/root/root_exec/lib/libMathMore.so
Reason: image not found
zsh: abort musrview test-histo-ROOT-NPP.msr
libgslがないと怒られている。
しかし,実際はlibgslはmacportsでインストールされています。
% sudo port installed gsl
Warning: port definitions are more than two weeks old, consider updating them by running 'port selfupdate'.
The following ports are currently installed:
gsl @2.6_0
gsl @2.7_0
gsl @2.7.1_0 (active)
なるほど,バージョン2.7がインストールされているのにバージョン2.5を呼び出しているのか。。。
古いバージョンをactivateしようにも,2.6以降しかインストールされていない。
実際,/opt/local/libに見に行ってみると,
% ls -l libgsl*
-rwxr-xr-x 1 root admin 2228224 12 2 2021 libgsl.27.dylib*
-rw-r--r-- 1 root admin 3939896 12 2 2021 libgsl.a
lrwxr-xr-x 1 root admin 15 12 2 2021 libgsl.dylib@ -> libgsl.27.dylib
-rwxr-xr-x 1 root admin 219792 12 2 2021 libgslcblas.0.dylib*
-rw-r--r-- 1 root admin 331056 12 2 2021 libgslcblas.a
lrwxr-xr-x 1 root admin 19 12 2 2021 libgslcblas.dylib@ -> libgslcblas.0.dylib
(libgsl.dylib@っていうシンボリックリンクがいるのだから,libMathMore.soがそっちを参照しに行けばいいのに,25をよみにいっているところがアホ)
git pullしてrootをソースから作り直してもおなじメッセージが出る。
macportsで古いgslをインストールするのも手なのですが,ちょっと面倒なのでやっちゃいけないのは承知で以下のようにしてみました。
% ls -l libgsl*
lrwxr-xr-x 1 root wheel 15 10 26 16:06 libgsl.25.dylib@ -> libgsl.27.dylib
-rwxr-xr-x 1 root admin 2228224 12 2 2021 libgsl.27.dylib*
-rw-r--r-- 1 root admin 3939896 12 2 2021 libgsl.a
lrwxr-xr-x 1 root admin 15 12 2 2021 libgsl.dylib@ -> libgsl.27.dylib
-rwxr-xr-x 1 root admin 219792 12 2 2021 libgslcblas.0.dylib*
-rw-r--r-- 1 root admin 331056 12 2 2021 libgslcblas.a
lrwxr-xr-x 1 root admin 19 12 2 2021 libgslcblas.dylib@ -> libgslcblas.0.dylib
不具合が出るまでこれで行きます。
きちんとスペクトル表示されました。