NS3 安装历程

来源:互联网 发布:php正规替换 编辑:程序博客网 时间:2024/05/06 00:56

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//读取pcappacket 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

打开一个新的终端;

cd /usr/bin

更改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
原创粉丝点击