あいさつ #
ネットワークの勉強用にns3をダウンロードしました。ns3-38の情報が少なく、公式のinstallation guideを参考にしましたが、設定に少し困ったのでここで一応紹介。
公式のドキュメント(https://www.nsnam.org/documentation/)
インストール方法(ns3-38) #
ns3-38のインストール #
Virtual BoxにUbuntu-20.04をダウンロードした後を想定しています
(1)一応、パッケージ一覧を更新(雰囲気)
sudo apt update
(2)workplace ディレクトリを作る&移動(作らなくても良いがドキュメントでは作ってることが多い)
mkdir workplace
cd workplace
(3)マニュアル通りにRequirementsをダウンロード
sudo apt install g++ python3 cmake ninja-build git
(4)gitからns3をダウンロード
git clone https://gitlab.com/nsnam/ns-3-dev.git
(5)ディレクトリを移動
cd ns-3-dev
(6)マニュアル通りにRecommendedをダウンロード
sudo apt install ccache clang-format clang-tidy gdb valgrind
つづけて、Python bindingsのダウンロード #
(7)ubuntu用のpipをダウンロード(ubuntuは独自のpipがある為、省略すると上手くいかない可能性あり)
sudo apt install python3-pip
(8)Python bindingsの設定(warningでpathが通ってないと言われるが無視しても大丈夫だった。もちろん通してもいいと思う。)
python3 -m pip install --user cppyy
つづけて、PyViz visualizerの設定 #
(9)必要なパッケージをダウンロード
sudo apt install gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3
最後にビルド #
(10)ビルドの前にドキュメントのOptionalの所をダウンロード(必須では無いが後からエラーが出るとめんどいからやっておくほうが良い気がする)
超長いのでコピペ推奨。もちろんドキュメントのOptionalを見ながら必要な物だけダウンロードしても良い。
sudo apt install tcpdump wireshark sqlite sqlite3 libsqlite3-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools openmpi-bin openmpi-common openmpi-doc libopenmpi-dev doxygen graphviz imagemagick python3-sphinx dia imagemagick texlive dvipng latexmk texlive-extra-utils texlive-latex-extra texlive-font-utils libeigen3-dev gsl-bin libgsl-dev libgslcblas0 libxml2 libxml2-dev libgtk-3-dev lxc-utils lxc-templates vtun uml-utilities ebtables bridge-utils libxml2 libxml2-dev libboost-all-dev
(11)最後にビルド
./ns3 configure --enable-examples --enable-tests --enable-python-bindings --enable-mpi
自分は–enable-python-bindingsが必要だと気づかずに苦労した。
./ns3 build