- 2007年12月19日 12:28
- ソフトウェア
Mac OS X(Leopard)にネットワークシミュレータのns2をインストールします。以前、Windows+Cygwin環境にインストールしたことがあるので(こちら)、同じようにインストールできると思っていたのですが、そう簡単にはインストールできなかったのでメモします。
前提として、以下の作業を終えている必要があります。
それでは、インストール手順の説明を始めます。
- ソースのダウンロード
以下のページにアクセスし、「ns-allinone-2.30.tar.gz」をダウンロードします。ダウンロードしたファイルは適当なディレクトリ(~/srcなど)に格納します。
- インストール
以下のコマンドを実行し、ダウンロードしたファイルを展開します。
$ tar zxvf ns-allinone-2.30.tar.gz
展開が終わったら、できあがったディレクトリを「/usr/local」ディレクトリにコピーします。コピーできたら「/usr/local/ns」ディレクトリに移動します。
$ sudo cp -R ns-allinone-2.30 /usr/local/ns $ cd /usr/local/ns
通常、ここで「./install」コマンドを打つと自動でインストールが行われるはずなのですが、Mac OS X (Leopard)とns-allinone-2.30の組み合わせではインストール中にエラーが発生し、インストールが中断してしまいます。
具体的には、「OTcl」「Tclcl」「nam」のconfigure時に、X11のライブラリが自動検出されないことによって、エラーが発生します。どうやら64ビット環境だと上手く行かないみたいです。従って、X11のライブラリの場所をconfigureに示してやる必要があります。ここでは、「/usr/local/ns」にある「install」スクリプトを修正する方向で話を進めます。(もっとスマートな方法があるかもしれない・・)
「install」スクリプトを開きます。$ sudo vi install
開いたら以下の三カ所を修正します。赤色の部分を追記してください。
echo "============================================================" echo "* Build OTcl-$OTCLVER" echo "============================================================" cd ./otcl-$OTCLVER blame='Please check http://www.isi.edu/nsnam/ns/ns-problems.html for common problems and bug fixes.' if [ "${test_cygwin}" = "true" ]; then ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "otcl-$OTCLVER configuration failed! Exiting ..."; else ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "otcl-$OTCLVER configuration failed! Exiting ..."; fiecho "============================================================" echo "* Build Tclcl-$TCLCLVER" echo "============================================================" cd ./tclcl-$TCLCLVER if [ "${test_cygwin}" = "true" ]; then ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include || die "tclcl-$TCLCLVER configuration failed! Exiting ..."; else ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-otcl=../otcl-$OTCLVER || die "tclcl-$TCLCLVER configuration failed! Exiting ..." fiecho "============================================================" echo "* Build nam-$NAMVER" echo "============================================================" ln -s otcl-$OTCLVER otcl ln -s tclcl-$TCLCLVER tclcl cd ./nam-$NAMVER if [ "${test_cygwin}" = "true" ]; then ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-tclcl=$CUR_PATH/tclcl-$TCLCLVER || die "Nam configuration failed! Exiting ..."; else ./configure --x-libraries=/usr/X11R6/lib --x-includes=/usr/X11R6/include --with-otcl=../otcl-$OTCLVER --with-tclcl=../tclcl-$TCLCLVER || die "Nam configuration failed! Exiting ..."; fi以上で「install」スクリプトの修正は完了です。ファイルを保存してからエディタを終了し、ターミナルで以下のコマンドを実行して、インストールを開始します。
$ sudo ./install
最後に以下のような文章が表示されればインストール成功です。
IMPORTANT NOTICES: (1) You MUST put /usr/local/ns/otcl-1.13, /usr/local/ns/lib, into your LD_LIBRARY_PATH environment variable. If it complains about X libraries, add path to your X libraries into LD_LIBRARY_PATH. If you are using csh, you can set it like: setenv LD_LIBRARY_PATHIf you are using sh, you can set it like: export LD_LIBRARY_PATH= (2) You MUST put /usr/local/ns/tcl8.4.14/library into your TCL_LIBRARY environmental variable. Otherwise ns/nam will complain during startup. 次は環境変数の設定です。ユーザディレクトリの「.bash_profile」ファイルに以下を追記します。
export PATH="/usr/local/ns/bin:$PATH" export LD_LIBRARY_PATH=/usr/local/ns/otcl-1.12:/usr/local/ns/lib:$LD_LIBRARY_PATH export TCL_LIBRARY=/usr/local/ns/tcl8.4.13/library
最後にターミナルを再起動すればインストール完了です。
- 動作確認
簡単な動作確認を行います。以下のコマンドを実行して、シミュレーション結果を表示するGUIが表示されれば正常にインストールされています。
$ sudo ns /usr/local/ns/ns-2.30/tcl/ex/simple.tcl
今回は少し手こずりました。。。まあ、勉強になったのでよかったです!