Windows系統推薦大家在Windows系統下安裝VM Ware。
下載地址如下:http://www.vmware.com/cn.html
激活密鑰:5A02H-AU243-TZJ49-GTC7K-3C61N (如不可用,百度VM Ware Key即可)
NS-3需要基於Linux操作系統,這裏介紹Ubntu的安裝。
下載地址如下:https://www.ubuntu.com/download(目前爲16.04版本)
下載安裝包之後,打開VM Ware,選擇文件->新建虛擬機->典型->下一步->選擇鏡像文件位置->關聯鏡像文件,之後便會自動安裝。
這裏需要注意的是,爲了安裝效率,請跳過語言包的安裝。
//如果有更快的源,可以自己替換
進入Ubuntu系統後,打開Terminal
sudo apt-get update
sudo apt-get upgrade
安裝好系統之後,NS-3需要一系列環境的配置,這裏截取了NS-3官網的環境配置教程。
· minimal requirements for C++ (release): This isthe minimal set of packages needed to run ns-3 from a released tarball. //C++和python安裝,必裝
sudoapt-get install gcc g++ python
· minimal requirements for Python (release): This isthe minimal set of packages needed to work with Python bindings from a releasedtarball.
sudoapt-get install gcc g++ python python-dev
· qt4 development tools (Note: qt4, not qt5)needed for NetAnim animator
sudoapt-get install qt4-dev-tools libqt4-dev
· Mercurial is needed to work with ns-3 developmentrepositories. //NS3代碼維護使用的源碼版本控制管理系統
sudoapt-get install mercurial
· Running python bindings from the ns-3 development tree(ns-3-dev) requires bazaar //運行python綁定ns-3-dev需要bazaar這個組件
sudoapt-get install bzr
· Support for generating modified python bindings
sudoapt-get install cmake libc6-dev libc6-dev-i386 g++-multilib
and you will want to install gccxml and pygccxml as per the instructionsfor python bindings (or through the bake build tool asdescribed in the tutorial).
· Debugging: //調試工具
sudoapt-get install gdb valgrind
· GNU Scientific Library (GSL) support for more accurateWiFi error models
sudoapt-get install gsl-bin libgsl0-dev libgsl0ldbl
· The Network Simulation Cradle (nsc) requires the flexlexical analyzer and bison parser generator: //仿真必需的詞法分析器和語法分析生成器,必裝
sudoapt-get install flex bison libfl-dev
· To read pcap packet traces //讀取pcap的packet traces,即包嗅探器
sudo apt-get install tcpdump
· Database support for statistics framework //支持統計特性的數據庫軟件
sudo apt-get install sqlite sqlite3libsqlite3-dev
· Xml-based version of the config store (requires libxml2>= version 2.7) //xml的配置存儲軟件
sudo apt-get install libxml2 libxml2-dev
· A GTK-based configuration system //基於GTK的配置系統
sudoapt-get install libgtk2.0-0 libgtk2.0-dev
· To experiment with virtual machines and ns-3
sudoapt-get install vtun lxc
· Support for utils/check-style.py code style check program
sudo apt-get install uncrustify
· Doxygen and related inline documentation: //文檔生成器,ns-3手冊和tutorial編寫查看工具
sudoapt-get install doxygen graphviz imagemagick
sudoapt-get install texlive texlive-extra-utils texlive-latex-extratexlive-font-utils texlive-lang-portuguese dvipng
· The ns-3 manual and tutorial are written inreStructuredText for Sphinx (doc/tutorial, doc/manual, doc/models), and figurestypically in dia (also needs the texlive packages above):
sudoapt-get install python-sphinx dia
Note: Sphinx version >= 1.12 required for ns-3.15. Tocheck your version, type "sphinx-build". To fetch this package alone,outside of the Ubuntu package system, try "sudo easy_install -USphinx".
· Support for Gustavo Carneiro's ns-3-pyviz visualizer //Gustavo's ns-3-pyviz的可視化軟件
sudoapt-get install python-pygraphviz python-kiwi python-pygoocanvaslibgoocanvas-dev ipython
· Support for openflow module (requires some boostlibraries)
sudo apt-get install libboost-signals-devlibboost-filesystem-dev
· Support for MPI-based distributed emulation
sudo apt-get install openmpi-binopenmpi-common openmpi-doc libopenmpi-dev
配置好環境之後,我們用新出的工具bake進行安裝;
hg clone http://code.nsnam.org/bake
然後把bake加入路徑;
export BAKE_HOME=`pwd`/bake
export PATH=$PATH:$BAKE_HOME
export PYTHONPATH=$PYTHONPATH:$BAKE_HOME
接下來,我們可以用bake來檢查系統是否未安裝的包;
bake.py check
檢查之後,可以看到如下所示,表示沒有缺失包;
> Python - OK > GNU C++ compiler - OK > Mercurial - OK > CVS - OK > GIT - OK > Bazaar - OK > Tar tool - OK > Unzip tool - OK > Unrar tool - OK > 7z data compression utility - OK > XZ data compression utility - OK > Make - OK > cMake - OK > patch tool - OK > autoreconf tool - OK > Path searched for tools: /usr/lib64/qt-3.3/bin /usr/lib64/ccache /usr/local/bin /usr/bin/bin/usr/local/sbin /usr/sbin /sbin /user/dcamara/home/scripts/user/dcamara/home/INRIA/Programs/bin /user/dcamara/home/INRIA/repos/llvm/build/Debug+Asserts/bin
如果發現有包缺失,則用sudo apt-get install xxxx自行下載。
在下載和安裝NS-3前你需要配置bake通知你想爲NS-3添加什麼模塊,標準如下;
bake.py configure -e ns-3.27
目前NS-3安裝版本爲3.26,官網更新已爲3.27;
然後看到添加的模塊,配置具體系統要求,可以用bake show
bake.py show
下載所選的模塊及其依賴;
bake.py download
構建NS-3;
值得注意的是:NS-3.26的gccxml僅支持gcc-4.2~gcc-4.8版本,而Ubuntu16.04下版本爲gcc-5.4,因此需要多下載一個gcc-4.8及g++-4.8;
sudo apt-get install gcc-4.8 g++-4.8
打開一個新的終端;
更改gcc及g++鏈接
sudo rm gcc g++
sudo ln gcc gcc-4.8
sudo ln g++ g++-4.8
先編譯gccxml,回到原來的終端;
進入gccxml文件夾找到make文件;
cd source/gccxml/objdir
make
sudo make install
切回新打開的終端;
接下來把gcc及g++鏈接回5.4版本;
sudo rm gcc g++
sudo ln gcc gcc-5.4
sudo ln g++ g++-5.4
更改bake的配置文件,否則整體編譯不通過;
sudo gedit ~/source/ns-3.26/bindings/python/wscript
//不知道3.27是否解決了這個問題,這是在我安裝3.26時寫的,僅供大家參考
找到“# Check for pybindgen”代碼塊,將if語句條件設定爲false;
找到 “## Check gccxml version”代碼塊;
將”gccxml_version_line=”之後的改爲os.popen(“gccxml.real–version”).readline().strip();
最後用bake構建NS-3。
bake.py build