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