はじめに
このページで、HEASoft の install のログについてメモを残しておきたいと思います。 xspec が python 対応したことで、微妙にハマることもありますので。
HEASoft って何?? という人は、
を一読ください。
Ubuntu
heasoft 6.31.1 on Ubuntu 18.04.6 LTS
2023.6.22
# download and unzip
mkdir -p $HOME/software/heasoft/
cd $HOME/software/heasoft/
tar -zxvf heasoft-6.31.1src.tar.gz
# $HOME/software/heasoft/heasoft-6.31.1/BUILD_DIR 以下へ移動する。
# set environments
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
export FC=/usr/bin/gfortran
export PERL=/usr/bin/perl
export PYTHON=$HOME/anaconda3/bin/python
# make
./configure > config.out 2>&1
make > build.log 2>&1
make install 2>&1 | tee install.log
PATHの設定
# setup anaconda 2023.6.22
PATH=$HOME/anaconda3/bin:$PATH
# 2023.6.22 setup
export HEADAS=$HOME/software/heasoft/heasoft-6.31.1/x86_64-pc-linux-gnu-libc2.27
source $HEADAS/headas-init.sh
# CALDB
export CALDB=$HOME/xraydata/caldb
source $CALDB/software/tools/caldbinit.sh
heasoft 6.32.1 on Ubuntu 18.04.6 LTS
2023.10.7
上記と同様で全くエラーが出ずにコンパイルできた。
XRISM Software Build 8 on Ubuntu 18.04.6 LTS
2024.7.13
上記と同様で全くエラーが出ずにコンパイルできた。
HEASOFT 6.34 (August 22, 2024)
2024.10.11
上記と同様で全くエラーが出ずにコンパイルできた。
Mac
HEASOFT 6.34 (August 22, 2024)
2024.10.11
バイナリで動いた。ただし、
に記載の下記2点、
- 1 ./configure は必要
- 2 fv を実行時には、mac の
プライバシーとセキュリティ
から許可ボタンを押す
の2点を忘れないようにしましょう。
ファイルをダウンロードするだけではないです。
https://heasarc.gsfc.nasa.gov/lheasoft/macos.html
B.2. Configure (Pre-Compiled Binaries)
は、バイナリの場合でも必要です。
例えば、heasoft-6.34/x86_64-apple-darwin23.2.0/BUILD_DIR 以下で、
./configure >& config.txt
を実行する必要があります。
これと、fv
を使う場合は、
mac のバイナリを使う場合に、wish
の開発元を検証できないため開けません、などのエラーメッセージが出て、fv
などが使えない場合があります。
wish というのは、heasoft/heasoft-6.33.1/x86_64-apple-darwin21.6.0/bin/wish
に入っていて、
https://www.tcl.tk/man/tcl8.6/UserCmd/wish.htm
という、昔の GUI を fv
が使ってるためだと思います。コマンドラインには、
heasoft/heasoft-6.34/x86_64-apple-darwin23.2.0/bin/fv: line 23: 30357 Killed: 9 $FV/bin/wish $FITSVIEWER_LIBRARY/fvInit.tcl -- "$@"
というエラーがでます。
解決方法は簡単で、mac のシステム設定 --> プライバシーとセキュリティ を確認し、fv
を実行すると許可する
というボタンが生成するので、それを押します。wish
以外にもいろんなライブラリが許可されてないので、なんども fv
を実行して許可します。
なぜか、birby
が残っています。。これは、
heasoft-6.34/x86_64-apple-darwin23.2.0/BUILD_DIR]
configure: operator_path="/Users/birby"
configure.in: operator_path="/Users/birby"
の中に含まれる仮のユーザー名なのですが、これは特に configure のオプションで変更するわけではないはずです(私の理解ですが)。
これが残っているせいで、
otool -L `which ftselect`
/Users/syamada/work/software/heasoft/heasoft-6.34/x86_64-apple-darwin23.2.0/bin/ftselect:
@rpath/libhdinit_6.34.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libhdutils_6.34.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libape_2.9.dylib (compatibility version 0.0.0, current version 0.0.0)
/Users/birby/heasoft-6.34/heasoft-6.34/x86_64-apple-darwin23.2.0/lib/libcfitsio.10.dylib (compatibility version 11.0.0, current version 11.0.0)
@rpath/libreadline.8.dylib (compatibility version 8.2.0, current version 8.2.0)
@rpath/libhdio_6.34.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.100.2)
のように、/Users/birby/
以下にある libcfitsio.10.dylib
を読もうとして、当然ないのでコケます。コケない場合もあって、動的にLD_LIBRARY_PATH
などから cfitsio
を探してきて、偶然動くこともあるかと思います。対策としては、
の記事にあるように、install_name_tool
で、libcfitsio.10.dylib
の設定を手動で変更することです。
あるいは、/Users/birby/heasoft-6.34/
というディレクトリを生成し、そこにシンボリックリンクを貼ることです。
2024.10.28 追記
xspec
を bash から動かすときに、bash から動かすと環境変数の問題で、birby 問題が再発することが判明。下記の2つで対処した。。
(1) libcfitsio.10.dylib
libcfitsio.10.dylib
は cfits I/O の枯れたライブラリのはずなので、何でも大丈夫だと思うので、えいやっと、install_name_tool
で、heasoft-6.33.1
のlibcfitsio.10.dylib
にリンクをつけることにした。
install_name_tool -change /Users/birby/heasoft-6.34/heasoft-6.34/x86_64-apple-darwin23.2.0/lib/libcfitsio.10.dylib /Users/syamada/work/software/heasoft/heasoft-6.33.1/x86_64-apple-darwin21.6.0/lib/libcfitsio.10.dylib /Users/syamada/work/software/heasoft/heasoft-6.34/x86_64-apple-darwin23.2.0/bin/xspec
(2) homebrew 対策
上の対応だけだと、下記のエラーがには対応できない。
dyld[18251]: Library not loaded: /Users/birby/homebrew/opt/gcc/lib/gcc/current/libgcc_s.1.1.dylib
これは、バイナリを生成した人が、homebrew/opt
を使ってるのだが、これらのパスの移植ができていない。
諦めて、/Users/birby/homebrew/opt/gcc/lib/gcc/current
を生成し、そこにシンボリックリンクを貼ることにする。
cd /Users/birby/ # なければ無理やり作成
sudo mkdir -p homebrew/opt/gcc/lib/gcc/current
locate libgcc_s.1.1.dylib # 自分の環境でのファイルを探す
sudo ln -s /usr/local/Cellar/gcc/14.1.0/lib/gcc/current/* . # リンクを貼る
これで、bash script からも xspec は動いた。(2024.10.28の話)
CALDB の インストール
CALDBはダウンロードして PATH を通すだけであるが、マニュアルがわかりにくい。
静的なファイルなので、OSにも依存しないから、Macでダウンロードしてサーバーにコピーでもokです。
-
CALDB の環境変数の場所を決める
- 毎回全てのCALDBの更新をする必要はないが、古いものを維持したい場合はディレクトリを分けるなどの工夫が必要。
- 例えば、xraydata/caldbdir/20241014 など、更新した日付のディレクトリとして、CALDBの環境変数を設定するなど
- 例えば、
export $CALDB=$HOME/xraydata/caldbdir/20241014
-
CALDB gen の設定
- cd $CALDB
- wget https://heasarc.gsfc.nasa.gov/FTP/caldb/data/gen/goodfiles_gen.tar.Z .
-
CALDB software の設定
- mkdir -p $CALDB/software/tools
- cd $CALDB/software/tools
- wget https://heasarc.gsfc.nasa.gov/FTP/caldb/software/tools/caldb_setup_files.tar.Z .
- tar -zxvf caldb_setup_files.tar.Z
- ファイルの確認
software
└── tools
├── alias_config.fits
├── caldb.config
├── caldb_setup_files.tar.Z
├── caldbinit.csh
└── caldbinit.sh
これで、基本的なソフトウェアが設定されるはずです。
次に、ミッション依存の CALDB をインストールします。
から、gen, xrism_gen, resolve, xtend, の CALDBファイルをダウンロードします。
wget https://heasarc.gsfc.nasa.gov/FTP/caldb/data/xrism/gen/goodfiles_xrism_gen_20240315.tar.gz .
wget https://heasarc.gsfc.nasa.gov/FTP/caldb/data/xrism/resolve/goodfiles_xrism_resolve_20240815.tar.gz .
wget https://heasarc.gsfc.nasa.gov/FTP/caldb/data/xrism/xtend/goodfiles_xrism_xtend_20240815.tar.gz .
wget https://heasarc.gsfc.nasa.gov/FTP/caldb/data/gen/goodfiles_gen_20240822.tar.Z .
ダウンロードしたら、cd $CALDB
で、ファイルを展開するだけで ok です。
ログインシェルに応じて、下記を追記して、caldbinit.sh
を実行します。
export CALDB=$HOME/xraydata/caldbdir/20241014
source $CALDB/software/tools/caldbinit.sh
CALDBが正しくインストールされていることを確認する。
下記のチェックを行い、エラーがないことが確認できればokのはず。
caldbinfo [~/work/software]
Mode (BASIC or INST)[INST]
Name of Mission[XRISM]
Name of Instrument[RESOLVE]
... using gpcaldbinfo 1.0.0
** caldbinfo 1.0.2
... using infocaldb 1.0.1
...... environ-var/logical CALDB defined
......... CALDB path = /Users/syamada/work/software/caldbdir/20241014
... environ-var/logical CALDBCONFIG defined
... CALDBCONFIG file = /Users/syamada/work/software/caldbdir/20241014/softwar
e/tools/caldb.config
...... environ-var/logical CALDBALIAS defined
......... CALDBALIAS file = /Users/syamada/work/software/caldbdir/20241014/so
ftware/tools/alias_config.fits
...... CALDB is configured for the RESOLVE instrument onboard XRISM
......... Cal Index File: /Users/syamada/work/software/caldbdir/20241014/data/x
rism/resolve/caldb.indx
......... Instrument directory: /Users/syamada/work/software/caldbdir/20241014/
data/xrism/resolve
... CALDB appears to be set-up & accessible
** caldbinfo 1.0.2 completed successfully