dorapon2000’s diary

忘備録的な。セキュリティとかネットワークすきです。

Ubuntu 16.04 LTS で ns3.29 をインストールする

ns3.29が2018年9月4日にリリースされました。 ns3は1年に1回というペースでバージョンアップを繰り返しています。 早速自分もインストールしてみました。 以下では全部のせ(ns-allinone-3.29)のインストールをします。

エラーを被りながら、右往左往して得た最短ルートをうろおぼえで書いています。 間違っていたらコメントで指摘してくださると助かります。

環境

プレインストール

ns3のインストールの前に、必要なパッケージをaptコマンドでインストールしていきます。

$ sudo apt update
$ sudo apt upgrade

とりあえず、Installation - Nsnamに従って必要なパッケージをすべて入れます。 16.04でない環境の方は若干違うので、詳細はリンクを参照してください。

sudo apt install gcc g++ python python-dev
sudo apt install mercurial python-setuptools git
sudo apt install qt5-default
sudo apt install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3  
sudo apt install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
sudo apt install autoconf cvs bzr unrar
sudo apt install gdb valgrind 
sudo apt install uncrustify
sudo apt install doxygen graphviz imagemagick
sudo apt install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng
sudo apt install python-sphinx dia 
sudo apt install gsl-bin libgsl2 libgsl-dev
sudo apt install flex bison libfl-dev
sudo apt install tcpdump
sudo apt install sqlite sqlite3 libsqlite3-dev
sudo apt install libxml2 libxml2-dev
sudo apt install cmake libc6-dev libc6-dev-i386 libclang-6.0-dev llvm-6.0-dev automake
pip install cxxfilt
sudo apt install libgtk2.0-0 libgtk2.0-dev
sudo apt install vtun lxc
sudo apt install libboost-signals-dev libboost-filesystem-dev

ns3のダウンロード

以下はほぼGetting Started — Tutorialの翻訳みたいなもの。

ホームディレクトリを汚したくない方はワーキングディレクトリを作成してそちらにインストールしてください。 ns3のダウンロードにはいくつか方法がありますが、ここではbakeを使います。 別の方法としてtarballをダウンロードしてからインストールする方法もあるのですが、私の環境ではエラーが出てしまいました。

$ cd
$ mkdir workspace
$ cd workspace
$ hg clone http://code.nsnam.org/bake

bakeというディレクトリが作成されます。

$ ls bake
bake                  bakeconf.xml  doc       generate-binary.py  TODO
bake.py               examples      test

一時的にbakeディレクトリへのプログラムパスを通します。

cd bake
export BAKE_HOME=`pwd`
export PATH=$PATH:$BAKE_HOME:$BAKE_HOME/build/bin
export PYTHONPATH=$PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/lib

bakeを用いてns3をダウンロードします。 ns-allinone-3.29の部分のバージョン番号を直せば特定のバージョンを入れられます。 また、必要最低限のns3パッケージだけでいい場合は-e ns-3.29として下さい。

$ ./bake.py configure -e ns-allinone-3.29
$ ./bake.py check
$ ./bake.py download

sourceというディレクトリが新しくできます。

$ ls source
BRITE          netanim-3.108  openflow-ns-3.25  pygccxml-1.9.1
castxml        ns-allinone-3.29        pybindgen         v1.9.1.tar.gz
click-ns-3.25  nsc-0.5.3      pygccxml

ns3のビルド

ns3のビルドをします。

$ ./bake.py build

ns3のテスト

ns3に同封されているテストコードを実行して正常に動くか確認します。

$ cd ns-allinone-3.29
$ ./test.py

30分くらいかかりました。

最後にns3のサンプルスクリプトを動かしてみます。

$ ./waf --run hello-simulator
Hello Simulator

Hello Simulatorと表示されれば無事ns3.29のインストールは完了です。 お疲れ様でした。

参考

ネットワークシミュレータ ns-3.28 を Ubuntu 16.04 にインストール - ハードでもソフトウェア http://orsnken.hatenablog.com/

※記事のURLを貼るとバグるのでサイトトップページのURLで失礼します。