note/phool990610.txt 今回 tryした、new frameworkに 関する作業ですが、 rnlx01(rcfからsshで入る)の上で a. http://www.phenix.bnl.gov/WWW/offline/tutorials/phool-env.html b. http://www.phenix.bnl.gov/WWW/offline/tutorials/phool.html ->http://www.phenix.bnl.gov/phenix/WWW/publish/messer/phool.html (PHOOL(libphool.*)のbuildと それを使ってroot formatの ファイルの読み書きをおこなうprogramの build/実行) c. http://www.phenix.bnl.gov/WWW/offline/tutorials/phool-dst.html (root formatのサンプルファイルを interactive root上で 解析するマクロの実行など) の tutorialにしたがって動かすところまでで 時間切れになりました。 (正確にはcの途中まで。segmentation faultがマクロの最後で 起きたりするが、設定が悪いのか使い方が悪いのかまだわかってない) したがって ccjの方にはsample dataを持ってきただけで (/ccj/w/r01/yokkaich/newframe/sampledata/以下) installその他の作業は何もおこなっていません。 ------------------------------------------------ 質問です。 ところで、new frameworkで prdfから dstをつくる programというのはもう存在しているのでしょうか? webで探したんですがわからなかったので。 あと、frameworkを名乗るからには、環境変数の使い方とかに 開発者むけの規約があると思うんですが、 どなたか場所をごぞんじですか? (こちらはまだ探してません。) その規約とその守られ方によっては 下の問題は もうちょっと簡単になるかもしれません。 ---------------------------------------------------- ccjへの移植に際して考えられる問題点。 「設定すべき」とされている環境変数が実は80個ほどあって、 それの効果を一つ一つたしかめるのは困難である。 たとえば ROOTSYSは、ccjでrootをinstallしてあるところを 指定してやればいい(はずだ)が、PATHや LD_LIBRARY_PATHには /opt/phenixとか/afs/rhic/phenix以下がふくまれている。 とくに$ONLINE_MAIN/setup.comで 指定されている環境変数が多く、全部必要だとは思えないが (しかし、全く指定しないと動かないこともわかっている) それを確かめるのもむずかしいし、今必要なくても いつか使われるかもしれない。 (このへん、規約がしっかりしていれば、切り分けができるかも しれない) 特定のbinaryをいま動かすだけなら そのprogramがうごくように 設定すればよいが、ああいう形で提供されていると いつ中身が かわるかわからない。昨日までなかったライブラリが /opt/phenix/***/**に追加され、それがないと新しいソースは 動かず、しかもそのことは追加した人しか知らない、とか。 このときrcfのuserは 何も知らなくても だいじょうぶだが、 こちらはそうはいかない。 将来的には gnuのsoftwareのように configure/makeで buildできるようにしたい、とかどこかに書いてあったが (ということは そのときは 環境変数dependenceも合理的な 程度になっていると思うが)、 今はそうなっていない。 対策案: ccjでは /afs-rhic-phenix/とかいう名前の afsではないdirectoryをつくり、/afs/rhic/phenix/以下を 1日or1週間に一度くらい copyする。海を越えての転送は ftpによるミラーではなく afsにまかせる。 ccj-userは環境変数の /afs/rhic/phenix を /afs-rhic-phenix に読み替えて 指定することにする。 /opt/phenixも結局/afs/rhic/i386_redhat50/opt/phenixへの symbolic linkなので、これも/afs-rhic-i386_redhat50-opt-phenix をコピーし、そこへのsymbolic linkとする。 afsが落ちても、ccj-userは ccj-localで buildができる。 そうすると、egcsやrootもここを見に行くことになるので version違い問題なども起きなくなる(かな?ちょっと不安)。 この案の欠点。 なんか汚い。 どんなソフト/ライブラリの移植/インストールでも この問題はあるはずで、ただ、ふつうはtarを展開したときの top directoryの下にある程度おしこめられ、あとはconfigure が良くできていれば インストールは簡単である。 ここで大きな問題に見えるのは 'top directory'が /afs に なっていて見かけ上範囲が大きいことと、日々updateされること への対策が必要な点だろうか? ---------------------------------------------------- memo directory: rlnx01:~yokkaich/newframe/t990610/offline/framework/(b) rlnx01:~yokkaich/newframe/t990609/offline/offline/steering(c) 0. setenv CVSROOT /afs/rhic/phenix/PHENIX_CVS。 checkout できないときは klog。 1. 環境設定。$ONLINE_MAINも設定しないとうごかない(b,cとも)。 anacshrc,onlcshrcをsourceする。 2. b.では LD_LYBRARY_PATHに PHOOLのinstall directoryも 指定しないとだめ。$PHOOLでいくかとおもったがだめみたい。 flag 'write'で ソースレベルで読み書きを切り替える。 まず書いて、それをよむ。phreac3.dstとかをよんでも エラー(足りないライブラリ。自動ロードはできるのか?)。 3. c.では.rootrcを忘れないこと。dynamic loadingのpath. $EVT_LIBは$ONLINE(1.)のほうで指定されている。 4. camdstini.Cの実行ののち、 camdstana(10, "central.dst") をやると最後でsegmentation violation. fileはsymbolic linkしてあるはずだが。まちがえたか? ------ S.Yokkaichi, Kyoto Univ.