2022年10月26日水曜日

musrfitを久しぶりに使おうとしたら,変なエラーが出てしまった

スペクトルを表示しようと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

不具合が出るまでこれで行きます。

きちんとスペクトル表示されました。







0 件のコメント:

コメントを投稿