東京工業大学大学院理工学研究科基礎物理学専攻中村研究室メンバーTakayuki Sako

Ubuntu9.04/9.10にanapawをインストールする方法のメモ

概略

Ubuntu9.04に竹内氏のページからダウンロードしたANAPAW v.2.3.1をインストール

色々頑張る。

とりあえず動く。ただし、a/lすると落ちる。hbkは読める。要するに解析に使えない。

しばらく放置。g77を自前でビルド。この間にUbuntu9.10へアップグレード。

Ubuntu10.4@Asにインストールが完了したANAPAW(RIBF ver)を丸ごとコピー。ビルド。

ridfは多分OK。ただしrdfがアウト。色々エラーが出る。

cshの代わりにtcshを使う。RIBFでないverもうまくビルドできた。rdfもちゃんと読み込める。一件落着。

以下、その時々のメモ。

adduser

普段のユーザーとは別にanapaw用にadduserでユーザーを追加。 今回、ユーザー名はripsとした。

インストール開始

小林氏のページを参考にインストール開始。makelibの手前まではうまく行く。この先は色々問題発生。

permission denied

この状態でmakelibをするとpermission deniedと出る。ripsがファイルやディレクトリの所有者となっていない。
~/usr/local/anapaw_v2-3-1/src$ ls -lt
で確認。
~/usr/local/anapaw_v2-3-1/src$ sudo chown rips:rips *
で所有者を変更する。 さらに必要に応じて
sudo chmod +x [file name]
などで権限の変更を行う。

-rw-r--r-- 1 rips rips 2692 2009-10-06 18:54 astop.o
-rw-r--r-- 1 rips rips 8348 2009-10-06 18:54 ainit.o
-rw-r--r-- 1 rips rips 71788 2009-10-06 18:54 anamnu.o
-rw-r--r-- 1 rips rips 2279 2009-10-06 18:53 Makefile
lrwxrwxrwx 1 rips rips 16 2009-09-25 15:40 anaevent.f -> anaevent_riken.f
lrwxrwxrwx 1 rips rips 16 2009-09-25 15:40 common.inc -> common_riken.inc
lrwxrwxrwx 1 rips rips 16 2009-09-25 15:40 dumpdata.c -> dumpdata_riken.c
lrwxrwxrwx 1 rips rips 16 2009-09-25 15:40 getblock.c -> getblock_riken.c
lrwxrwxrwx 1 rips rips 14 2009-09-25 15:40 getevt.c -> getevt_riken.c
-rw-r--r-- 1 rips rips 2289 2005-02-09 05:05 anaevent_nscl.f
-rw-r--r-- 1 rips rips 2562 2005-02-09 05:05 anaevent_riken.f
こんな感じになればOK

g77

makelib
make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' に入ります
make anaclean
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' に入ります
rm -f *~ *.o *.f~ *.c~ *.a /home/rips/usr/local/anapaw/lib/anapaw.o \
/home/rips/usr/local/anapaw/lib/libanalib.a
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' から出ます
make -C /home/rips/usr/local/anapaw/src/vana clean
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src/vana' に入ります
rm -f viewana *.o *.c~
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src/vana' から出ます
make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' から出ます
make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' に入ります
g77 -O2 -funroll-loops -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -c anamnu.f
make: g77: コマンドが見つかりませんでした
make: *** [anamnu.o] エラー 127
make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' から出ます
make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' に入ります
make viewana
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' に入ります
make -C /home/rips/usr/local/anapaw/src/vana
make[2]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src/vana' に入ります
gcc viewana.c -I/usr/include -L/usr/lib -lX11 -lXt -lXaw -o viewana
make[2]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src/vana' から出ます
make[1]: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src' から出ます
mv anapaw.o /home/rips/usr/local/anapaw/lib/anapaw.o
mv: stat `anapaw.o'を実行できません: No such file or directory
make: *** [install] エラー 1 make: ディレクトリ `/home/rips/usr/local/anapaw_v2-3-1/src'
g77が入っていない。入れてみる。
~$ sudo apt-get install g77
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
パッケージ g77 はデータベースには存在しますが、利用できません。
おそらく、そのパッケージが見つからないか、もう古くなっているか、
あるいは別のソースからのみしか利用できないという状況が考えられます
E: パッケージ g77 にはインストール候補がありません
sudo apt-get install する際のダウンロード先を以下のように変更
「システム」−「システム管理」‐「ソフトウェア・ソース」 →「ダウンロード先」を「日本のサーバ」から「メインサーバ」へ
するとg77がインストールできるらしい記述を見かけたがサーバを変更してもg77はイ ンストールできなかった。
どうやらubuntu9.04にはg77が入らないらしい。そこでgfortranを使うことにする (fort77を試すと大量のエラーが出るので諦めた)。
エラーメッセージを見ながらmakefile中のg77をgfortranへ書き換える。

※追記
この後自前でg77をビルドすることによりANAPAWのインストールに成功した。

ff2c

makeanaをするとC関係のエラーが発生する。
~/usr/local/anapaw/src/Makefile
中に
FFLAGS = -O2 -funroll-loops -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -ff2c
-ff2cを追加。するとエラーを回避できる。
後は、再度小林氏のページを参考にしながらlibreadline libncursesのリンクを作 るとmakeanaまでエラーなく実行可能。

X

この段階で一応anapawは起動できるものの
***** ERROR in IOPWK : Can't open DISPLAY
***** ERROR in IACWK : Workstation is not open
***** ERROR in ISWKWN : Invalid workstation window parameters
***** ERROR in ISWKVP : Invalid workstation window parameters
なるエラーが出る。
sudo login rips
でripsにログインしている限りデフォルトではXが起動できない。そこで
ssh -X rips@host
としてsshを使うとうまく行く。詳細は知らない。

この段階のまとめ

ANAPAW v.2.3.1 (RIBFでないバージョン)@Ubuntu9.04
gfortran使用
csh使用
ANAPAWの起動は可能
hbkを読み込むことは可能
a/lでANAPAWが落ちる。つまり、解析ができない

ANAPAW放置

しばらくANAPAW放置。この間にg77を自前でコンパイル。このメモは紛失。ただ、gcc-2.95.3でコンパイルした模様。
さらにこの時期Ubuntu9.10へアップグレード。

ANAPAW(RIBF ver)

K.T君がUbuntu10.4@AsにDAYONEのRIBF verのANAPAWをインストールした。インストール完了後、 丸ごとコピーしてビルドする姑息な作戦。 ちなみにANAPAW本体のソースは
~/usr/local$ ls
anapaw anapaw_ridf anapaw_v2-3-1
においてリンクを張り替えて両者を使い分ける(このディレクトリのanapawはただのシンボリックリンク)。RIBFバージョンをanapaw_ridfとしてこちらを使うときは
ln -s anapaw anapaw_ridf
としておく。 makeanaすると
g77 -o anapaw usersrc.o usersub.o add_ntuple.o int2char.o util.o encppac.o loadppacprm.o calc_ppac.o rayfit.o encpla.o loadplaprm.o encrf.o loadrfprm.o encssd.o loadssdprm.o encic.o loadicprm.o encnai.o loadnaiprm.o rec_delta.o rec_beta.o encpid_bigrips.o encpid_zds.o physutil.o loadpidbigripsprm.o loadbigripsmat.o encf11ge.o encf7ge.o clover.o loadf7geprm.o loadf11geprm.o loadpidzdsprm.o loadzdsmat.o read_mat.o encdali.o loaddaliprm.o enccoin.o rnum2filename.o loadicoffset.o /home/rips/usr/local/anapaw/lib/anapaw.o /home/rips/usr/local/anapaw/lib/libanalib.a -L/usr/lib -lX11 -ldl -lcrypt -L/home/rips/usr/local/anapaw/lib -lanalib -lXt -lXaw -lpthread -L/usr/lib -lpawlib -lgraflib -lgrafX11 -lpacklib -lmathlib -lkernlib -Icern -lnsl -lreadline -lncurses -lstdc++ -llapack -lblas
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [anapaw] エラー 1
make: ディレクトリ `/home/rips/exp/dayone/users/dayone/src' から出ます
lstdc++が見つからないというエラーは出たもののlocateすると
locate libstdc

/usr/lib/libstdc++.so
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.13
/usr/lib/gcc/i486-linux-gnu/4.1/libstdc++.a
/usr/lib/gcc/i486-linux-gnu/4.1/libstdc++.so
/usr/lib/gcc/i486-linux-gnu/4.2/libstdc++.a
入っているっぽい。とりあえず適当にリンク。
ln -s /usr/bin/libstdc++.so /usr/lib/libstdc++.so
するとmakeana通った。これでridfは使えるようになった。

rdfを使いたい

RIBF仕様のridfだけでなくrdfも使いたい。そこでNEBULAのDAQ用PCに入っているsrcを移植、 makeanaするも色々エラーが出る。 src/に runstat.fhをコピー。usersrc.f に
include 'runstat.fh'
を追加。 するとmakeanaは通る。だが、ANAPAWを起動すると
host:~/exp/dayone/users/nebulatest> anapaw
******************************************************
* *
* W E L C O M E to P A W *
* *
* Version 2.14/04 12 January 2004 *
* *
******************************************************
Workstation type (?=HELP) < CR>=1 :
Version 1.29/04 of HIGZ started
*** No default PAWLOGON file "/home/rips/.pawlogon.kumac" found

******************************************************
* *
* W E L C O M E to A N A P A W *
* *
* Version 2.3.1 : 09.Feb.2005 *
* *
* S.Takeuchi@RIKEN *
* *
******************************************************

ANAPAW-M : [TArtEventStore] Constructor
ANAPAW-M : [TArtEventStore] Initialize : SET ART_MAPCONFIG!!!
ANAPAW-M : [TArtMapConfig] ~TArtMapConfig
このエラーが出てANAPAWが落ちたりする。 修正は手間がかかりそう。

RIBFでないバージョンを再びビルド

とりあえずcshの代わりにtcshを使う。
sudo apt-get install tcsh
すでにg77は自前でビルドしてあるので前にgfortranに書き換えたMakefileをg77に戻す。 するとうまくいった。a/lもうまくいく。これで無事終了。 ちなみにcshではうまくいかなかった。

謝辞

今回のanapawのインストールに際し、近藤氏・小林氏には大変お世話になりました。深く感謝申し上げます。