ここではCLDAQのインストール方法から簡単な使い方までを解説します.
開発時間を短くしたいということもありまして, CLDAQはいろんなライブラリに依存します. 必要になるライブラリはリンクのページに列挙してありますので, そこから飛んでいってください.
もっとも, 大抵のディストリビューションにはインストール時に入っちゃってるのがほとんどだと思うのですけれど, CLHEP と ROOTという, 非高エネ業界の人々には覚えのないものも使用します.
どちらもインストールは至極簡単ですが, 一応,インストール方法を書いておきます.
CLHEPはクラスライブラリです. これを使用することによってベクトルやマトリックスの表現, 物理定数や乱数を簡単に操作することが出来ます. 便利なのでCLDAQでは積極的に使用しています.
まずは ここから最新版をダウンロードしてきます. (リンク先切れてたらGoogleしてちょうだい) このドキュメントを書いている時点での最新版は バージョン1.8.0.0でした.
CLHEPのインストールは超簡単で, 今までうまくいかなかったりハマったりしたことはないです. もしハマるようなら, そんなディストリビューションは捨てたほうがいいんでないでしょうか?
% tar zxvf clhep-1.8.0.0.tgz % cd CLHEP % ./configure % make % su # make install # cd /usr/local/lib # ln -s libCLHEP-g++.1.8.0.0.a libCLHEP.a
これで終わりです. configure && make ですむソフトウェアは楽でいいですね. (こんなことを言う人はUNIXに犯されてる証拠)
実はROOTはCLDAQの機能を使用するには必要ないんですが,同梱される多くのアプ リケーションコードでROOTのライブラリを使用して,プロットを作っています.
CLDAQには解析パッケージなるもの(CLDAQ/source/analysis) が含まれていて,開発初期の構想においては解析ステーション(様々な解析ソフト ウェアが集まる場所という位置づけで,ワークステーションを真似たプレイステー ションの真似)というものを用意し,あらゆる解析ソフトウェアに対応する予定で した.少なくともそうゆうフレームワークにしてリリースする予定でした.
ところがこの部分を作っているときに肺炎になってしまい(2002年9月頃),その後, どんどん忙しくなってしまって,放置された状態が続き,今なお放置されています.
高エネ業界では歴史的に古くはPAWという解析ソフトウェアが使用され,また新世 代にはこのROOTがよく使用されているようです.僕も以前はPAWを使用していたク チですが,内輪(GLC)で標準的にになっ てきたということもあり,ためらいつつもROOTに移行しました.
そんな個人的背景もあって,CLDAQのアプリケーションコードではROOTを頻繁に利 用しますので,まともに動いてる様子を御覧になりたければ,ROOTをインストール しておくことを強く奨めます.
インストールは簡単です.まずは ここから最新版をダウンロードしてきて ください.バイナリ版も配布されていますが,ここでは Version 3.05/07 のソー スからビルドする場合を例にとって解説します.
内輪では実行時リンク型のライブラリをビルドするのが流行っているようですの で,ちょっと嫌なんだけど,共有(ダイナミック)ライブラリをビルドします.ちょっ とややこしいので,以下のようなスクリプトを用意しました.
#! /bin/sh -x RR="/usr/local/root" ./configure linux \ --aclocaldir=$RR/aclocal \ --datadir=$RR \ --docdir=$RR/doc \ --elispdir=$RR/site-lisp \ --etcdir=$RR/etc \ --fontdir=$RR/fonts \ --iconpath=$RR/icons \ --incdir=$RR/include \ --libdir=$RR/lib \ --macrodir=$RR/macros \ --mandir=$RR/man/man1 \ --prefix=$RR \ --srcdir=$RR/src \ --testdir=$RR/test \ --tutdir=$RR/tutorial \ --enable-ldap \ --enable-mysql \ --enable-opengl \ --enable-pgsql \ --enable-shared \ --enable-soversion \ --enable-table \ --enable-thread \ --with-ldap-incdir=/usr/include \ --with-ldap-libdir=/usr/lib \ --with-mysql-incdir=/usr/include/mysql \ --with-mysql-libdir=/usr/lib/mysql \ --with-opengl-incdir=/usr/include \ --with-opengl-libdir=/usr/lib \ --with-pgsql-incdir=/usr/include \ --with-pgsql-libdir=/usr/lib \ --with-thread-libdir=/usr/lib \ --with-xpm-libdir=/usr/X11R6/lib
もっとも,たいていの場合は
% ./configure linux % make # make install
で済んでしまう話です.
これを実行すれば,ビルドされたものは /usr/local/root 以下に置かれます. PythiaとCERNライブラリを生かしたければ,さらに以下の行をスクリプト中につ け加えます.
--enable-pythia6 \ --with-pythia6-libdir=$CERN_ROOT/lib \ --enable-cern \ --with-cern-libdir=$CERN_ROOT/lib \
この root-run-config を持っていったら,実行 するだけです.
% tar zxvf root_v3.05.05.source.tar.gz % cd root % ./root-run-config % make % su # make install # echo "/usr/local/root/lib" >> /etc/ld.so.conf # ldconfig
これで終わりです.
/usr/bin/ld: Not enough room for program headers (allocated 4, need 5) /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit statusこんなようなエラーを吐いてリンクできない. なんのエラーなのかよくわからないけど, マニュアルによると 「リンカが後でプログラムヘッダを追加する必要が生じた時にこのエラーを出力する」 とある. ますます意味不明だ. うまい回避策が思いつかなかったけど, --enable-soversion オプションを外した らうまくいきました. 理由はよくわからないので,根本的解決にはなってないです.
さて,必要なものが揃ったところで,CLDAQをビルドしましょう. ダウンロードページから最新版をダウンロードし てください.とりあえず,ホームディレクトリにインストールする例を紹介します. シェルは csh系 を使っています.
% cd $HOME % tar zxvf CLDAQ-x.xx.xx.tar.gz % source CLDAQ/config/scripts/cldaq-setup.csh % cd CLDAQ/source % make
うまくいけばこれで終わりです.
CLDAQには便利なconfigureスクリプトは存在しません.(将来的には用意しますが) 上の例中の3行目で cldaq-setup.csh というファイルを source している行がありますが,これが非常に重要です. CLDAQではライブラリをビルドするとき,あらかじめ設定されてある環境変数を使 いまくります.
ビルド時に参照される環境変数は以下のようなものがあります.特に始めの5行 は必須項目ですので必ず設定してください.出来れば,$HOME/.tcshrcな どに書くか,sourceされるようにしておくとよいでしょう.
環境変数 | 設定例 | 意味 |
CLDAQ_INSTALL | $HOME/CLDAQ | CLDAQの展開先 |
CLDAQ_CLHEP_BASE_DIR | /usr/local | CLHEPのルートパス |
CLDAQ_CLHEP_LIB_NAME | CLHEP | CLHEPのライブラリ名 |
CLDAQ_ZLIB_USE | 1 | zlibを使用するかどうか |
CLDAQ_ROOT_USE | 1 | ROOTを使用するかどうか |
CLDAQ_INCLUDES | -I$HOME/local/include -I/net/include | その他のヘッダファイルへのパス(makeにこけたらこれを設定してみるとよいかも) |
CLDAQ_LIBS | -L$HOME/local/lib -lfoo -lbar -lbaz | その他のライブラリパス(makeにこけたらこれを設定してみるとよいかも) |
CLDAQ_PAW_USE | 0 | PAWを使用するかどうか |
CLDAQ_X11_USE | 1 | X11を使用するかどうか |
CLDAQ_X11_LIB_DIR | /usr/X11R6/lib | Xライブラリへのパス |
CLDAQ_X11_INC_DIR | /usr/X11R6/include | Xヘッダファイルへのパス |
CLDAQ_GTK_USE | 1 | Gtkを使用するかどうか |
CLDAQ_QT_USE | 1 | Gtkを使用するかどうか |
CLDAQ_QT_BASE_DIR | /usr/lib/qt-2.3.1 | Qtのルートパス |
CLDAQ_QT_LIB_DIR | $CLDAQ_QT_BASE_DIR/lib | Qtライブラリへのパス |
CLDAQ_QT_INC_DIR | $CLDAQ_QT_BASE_DIR/include | Qtヘッダファイルへのパス |
なお, sh系のシェルを使用している場合は以下のようにして環境変数の設定箇所 を以下に読み換えてください.
% . CLDAQ/config/scripts/cldaq-setup.sh
ライブラリのビルドが終われば,$CLDAQ_INSTALL/lib/libCLDAQ.aが生 成されたはずです.これであなたはCLDAQをいつでも使用できると思います.きち んとした使用方法については 初心者むけのふざけた解説や 上級者むけのまじめな解説で解説したいと思いま すが,ひとまず,ちゃんとビルドされて動くものかどうかテストしたいところですね.
動作のテストは $CLDAQ_INSTALL/tests にあるコードで行います.どれも数10行〜100行程度の短いプログラムですが, CLDAQの使い方を簡単に理解し,動作しているかどうかを調べるにはここから始め るのが良いでしょう.
もし,ここまでのビルドが終わっているならば,あとは簡単です.
% cd $CLDAQ_INSTALL/tests % make
で終わりです.
% ls $CLDAQ_INSTALL/bin
なにやらいろいろ出来ていますよね?デバイスを必要とするプログラムはドライ バとデバイスの接続を必要としますが,その他のプログラムは今すぐ動くはずで す.ゲッティンスタートなのです.
$Id: install.html,v 1.8 2004/01/18 23:02:21 goiwai Exp $