Ubuntu12.04下安装 Ns3.19 步骤

来源:互联网 发布:电网络理论 编辑:程序博客网 时间:2024/05/18 18:15

具体参考了www.nsnam.org  官网上的用户手册以及一些网上相关的旧版本安装操作。

正式开始:

一、Ubuntu的安装

         网上最新版的Ubuntu是13.10版,我没用那个最新版,我用了Ubuntu 12.04版本。

         安装很简单:可以wubi 安装,我也是下了个 Ubuntu 的镜像文件(约700M),直接在windows下像安装其他软件一样安装。

    (问题来了:我由于手贱,把安装好的Ubuntu卸载了,想重新好好装一次,结果,,,再也无法用wubi安装了,很多错误提示。于是改用EasyBCD安装法安装,具体参考此网址:http://blog.csdn.net/leoly003/article/details/7390067)终于安装好了。


二、配置所需环境:

    打开终端,输入以下代码:

               sudo apt-get install gcc g++ python

               sudo apt-get install gcc g++ python python-dev

        sudo apt-get install mercurial 
        sudo apt-get install bzr 
        sudo apt-get install gdb valgrind  
        sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl 
        sudo apt-get install flex bison libfl-dev 
        sudo apt-get install g++-3.4 gcc-3.4 (找不到)
        sudo apt-get install tcpdump 
        sudo apt-get install sqlite sqlite3 libsqlite3-dev
        sudo apt-get install libxml2 libxml2-dev
        sudo apt-get install vtun lxc
        sudo apt-get install uncrustify
        sudo apt-get install doxygen graphviz imagemagick  
        sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
        sudo apt-get install python-sphinx dia  
        sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev
        sudo apt-get install libboost-signals-dev libboost-filesystem-dev
        sudo apt-get install openmpi*(有软件冲突,无法下载)
开始下载Ns3.19

 推荐使用Tarball下载ns-3
使用tarball下载ns-3比使用Mercurail下载ns-3要简单一些,因为需要下载的各个部分都已经预先被打包在一个压缩包中了,你只需要选择一个发行版版本,下载并且解压就可以。建立一个tarball目录来下载。如果你选择了tarballs方法下载,你可以键入如下命令来下载一份ns-3的发行版 (当然,可以根据需要选择你想要的版本):
cd
mkdirtarballs
cdtarballs
wgethttp://www.nsnam.org/releases/ns-allinone-3.19.tar.bz2
tar xjfns-allinone-3.19.tar.bz2
如果你切换到ns-allinone-3.19目录,你会看到下述文件:
build.py* ns-3.19/nsc-0.5.1/ README
constants.pyns-3.19-ref-traces/ pybindgen-0.12.0.700/ util.py
现在就可以编译ns-3软件包了。
 
编译ns-3
 
使用build.py编译
如果你是第一次编译ns-3软件包,建议使用allinone环境,它会为你以最常用的方式配置工程。
解压缩这个压缩包,打开这个文件夹,在终端运行里面的./build.py文件

编译脚本开始编译下载的ns3时,你会看到大量常见的编译器输入信息。最后你会看到如下编译成功的好消息:
Waf: Leavingdirectory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’
’build’ finishedsuccessfully (2m30.586s)


使用Waf编译

我们使用waf来配置和编译ns-3工程软件包,这一点不是严格必须的,但是做一个简单的介绍是很有必要的,起码可以了解如何修改工程的配置。也许你能做出的最有用的配置修改就是编译工程的优化版本了,默认你会将你的工程编译为调试版本,让我们来使工程做出优化的编译。
为了通知waf进行优化编译,你需要执行如下的命令:
./waf -doptimized configure
这会Waf可能会切换到其他目录收集信息. 当编译系统检查各种依存关系时,你可以看到类似如下的输出结果:
Checking forprogram g++ : ok /usr/bin/g++
Checking forprogram cpp : ok /usr/bin/cpp
Checking forprogram ar : ok /usr/bin/ar
Checking forprogram ranlib : ok /usr/bin/ranlib
Checking for g++ :ok
(鉴于长度限制,省略)
Checking forprogram valgrind : ok /usr/bin/valgrind
---- Summary ofoptional NS-3 features:
ThreadingPrimitives : enabled
Real TimeSimulator : enabled
Emulated NetDevice : enabled
GNU ScientificLibrary (GSL) : enabled
Tap Bridge :enabled
GtkConfigStore :enabled
XmlIo :enabled
SQlite stats dataoutput : enabled
Network SimulationCradle : enabled
Python Bindings :enabled
Python APIScanning Support : enabled
Use sudo to setsuid bit : not enabled (option --enable-sudo notselected)
Build examples andsamples : enabled
Static build : notenabled (option --enable-static not selected)
’configure’ finishedsuccessfully (2.870s)
需要注意输入的最后一部分。部分ns-3选项并不是默认的,需要底层系统的支持才能够顺利运行。例如:为了运行XmlTo系统必须安装libxml-2.0库,如果没有发现这个库,相应的ns-3特性就不会被激活,这会以消息显示出来。另一个需要注意的地方是:对于一些特定的程序,需要使用sudo命令来设置该程序的。这个是默认设置为关的,所以此性质会显示出未激活,现在我们可以进一步返回到调试编译上来:
./waf -d debugconfigure
此时编译系统被配置好,你可以编译ns-3程序的debug版本了,只需简单的命令如下:
./waf
一些waf命令在编译阶段是很重要的,另一些命令是在配置阶段有用的,例如,如果你想使用ns-3的仿真(emaulation)特性,你一定要通过上述的sudo来设置用户标识位(suid)为有效位。这将是一个配置命令,你可以使用如下命令通知Waf来重新设置:
./waf -d debug--enable-sudo configure
如果你这样做,waf会运行sudoroot的权限来改变仿真代码的socket创建程序。在waf中还有许多其它的配置和编译选项可用。若要察看详细的选项,键入以下命令:
./waf--help



0 0