備忘録など

勉強したことをまとめておこうかなとか

ns-2を使えるようにする

ネットワーク趣味れーたーシミュレーターのns-2を使いたいので、インストールしたときのメモ。

まず、必要な物がすべて入ったall-in-oneの圧縮ファイルをダウンロード。


nsnam - Browse /allinone/ns-allinone-2.35 at SourceForge.net

tarを展開したら、


Network Simulator 2 (ns-2) のインストール|monoのブログ

を参考に、必要なライブラリをインストール

$ sudo aptitude install libx11-dev xorg-dev

次の3ヶ所を修正

allinone-2.35/ns-2.35/linkstate/ls.h
137c137
< 	void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
---
> 	void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
none-2.35/ns-2.35/bin/raw2gp
24,25c24,27
< require 'getopts.pl';
< &Getopts('ags:m:ql') || usage;
---
> #require 'getopts.pl';
> use Getopt::Std;
> #&Getopts('ags:m:ql') || usage;
> getopts('ags:m:ql') || usage;
none-2.35/ns-2.35/bin/raw2xg
37,38c37,40
< require 'getopts.pl';
< &Getopts('acefgds:m:n:qrplvt:xy') || usage;
---
> #require 'getopts.pl';
> use Getopt::Std;
> #&Getopts('acefgds:m:n:qrplvt:xy') || usage;
> getopts('acefgds:m:n:qrplvt:xy') || usage;

このgetopts.plにはしばらく悩まされた。validateでCan't locate getopts.pl in @INCで悩んでる人はおそらくこれが原因です。

ビルド

$ cd ns-allinone-2.35
$ ./install

動作確認

$ cd ns-allinone-2.35/ns-2.35
$ ./validate