注意:下面所有操作步骤只针对Ubuntu,其他类型虚拟机请参考别的文章。
操作环境:VMware Workstation 10
安装包百度云链接:https://pan.baidu.com/s/1WoHQJRUg_bqAnKjriGSeQw 密码:3i0d
虚拟机发行版:ubuntu-16.04.3-desktop-amd64(64位虚拟机)
百度云链接:https://pan.baidu.com/s/1L9VvjorbS9ACc8O3Y_n1Xw 密码:zz7u
NS安装包:ns-allinone-3.27 PS: 可以通过ns官网下载最新版本:点击打开链接;
百度云链接:https://pan.baidu.com/s/1oEySDiC6eIOioKSl-dHxtA 密码:jtwt
步骤:
1.在终端输入命令安装NS-3依赖的软件包,具体命令如下:
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++-4.4 gcc-4.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 libgtk2.0-0 libgtk2.0-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-pdf texlive-latex-extra texlive-generic-extra texlive-generic-recommended //这句在执行时出现错误,后边会解释
sudo apt-get install texinfo dia texlive texlive-pdf texlive-latex-extra texlive-extra-utils texlive-generic-recommended texi2html //这句在执行时出现错误,后边会解释
sudo apt-get install python-sphinx dia
sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev
sudo apt-get install qt4-qmake
sudo apt-get install qt4-dev-tools //这个是后边NetAnim仿真界面需要依赖的软件包
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi-bin openmpi-doc libopenmpi-dev
现在说明安装软件包遇到的问题:
(1) 在执行第5句命令的时候出现以下错误提示:
这个时候我们只需要根据提示改正就好,第一步提示选中“libgsl-dev”而非“libgsl0-dev”,我们原命令的“libgsl0-dev”替换成“libgsl-dev”就可以。还有一个错误,libgsl0ldbl这个软件包不存在,但是提示有东西可以替换,果断安装可以替换它的软件包,问题解决。
(2) 在执行第15句和第16句的时候提示错误如下:
既然无法定位,我们不妨就不先安装这个软件包,当后边的配置编译出现错误的时候我们再去安装即可。去掉这个软件包我们发现命令可以顺利执行了。
2.下载NS-3安装包
方法一:最简单的办法,去NS官网通过浏览器下载后解压就可以。
NS官网下载最新版本:点击打开链接
ns-allinone-3.27安装包百度云链接:https://pan.baidu.com/s/1oEySDiC6eIOioKSl-dHxtA 密码:jtwt
方法二:在终端输入命令下载解压
cd
mkdir tarballs
cd tarballs
wget http://www.nsnam.org/release/ns-allinone-3.27.tar.bz2
tar -xjvf ns-allinone-3.27.tar.bz2
3.编译安装
分两种情况选择如何编译安装:
首次进行编译安装的时候我们把下面的步骤1执行一遍。
不是首次进行配置编译的时候执行步骤2。
步骤1:
在终端进入解压缩文件夹ns-allinone-3.27(注意不是ns-3.27)
执行命令 sudo ./build.py
安装正确后的截图如下,注意图中的未安装成功的三个模块 brite,click,openflow,我们先不用管。后面的话想要安装这三个模块,我们可以参考下面的文章解决:点击打开链接
PS:使用命令sudo ./build.py编译安装ns-3安装包一般是我们第一次安装ns-3的时候使用的命令,这是allinone环境下的的build.py脚本,是一个Python脚本。一旦我们第一次编译过后,我们之后就要使用waf编译。
步骤2:配置编译,这是两个过程,我们先进行配置ns3过程,再进行编译ns3过程。
使用waf编译安装(waf命令是交互式的,是基于python语言的开源编译系统。一旦我们用sudo ./build.py命令编译安装过ns-3,再想重新配置和编译就只能用waf命令。需要注意的是waf命令配置时是在目录ns-3.27下)
PS: 这里的第三条命令里的参数分为配置调试,优化调试。命令形式是 ./waf -d
执行sudo ./waf -d debug --enable-example --enable-tests configure命令具体作用是:配置ns-3,优化编译自己添加的例子和测试(那些系统自带默认的例子和测试是不编译的),然后系统进行重新配置,编译系统会检查ns3依赖的软件包是否成功安装。执行过程部分截图如下:
在配置信息的最后会列出一个当前ns-3系统特性的摘要,第一列是ns3里的模块名称,第二列是系统是否支持这些模块,如果系统不支持该模块会在后边的括号里列出系统不支持的原因。因此,如果我们想安装不成功的模块,比如前边的(brite,click,openflow)可以根据原因在配置的时候加入相应的选项或者下载模块依赖的软件包。系统特性摘要截图:
可以很明显的看到最后一句提示语:'configure' finished successfully (1m23.455s),说明我们完成了配置ns3的过程。下面我们要进行正式编译ns3的过程。
执行命令 sudo ./waf ,执行后的截图如下:
可以看到和执行的步骤一的现象基本一样。
4.测试ns3编译是否编译正确。
测试方法很多,介绍两种。
第一,利用test.py脚本进行测试,这是利用python语言编写的。
cd ns-3.27
sudo ./test.py –c core
该脚本是waf并行执行,可以看到执行过程中出现一堆的PASS...(执行过程很长,几十分钟)最后一行显示测试的结果,总共测试的数量和测试通过的脚本数量。执行过程截图如下:
第二,利用编写的脚本测试
sudo ./waf --run hello-simulator
编译成功后就会会打印"hello simulator",表示NS3安装成功了!
说明:如果没有看到输出“Hello Simulator”,说明你是在优化编译模式下进行的编译,在优化编译模式下,默认将关闭控制台输出。可以通过以下改变第3步中的步骤二中的命令sudo ./waf -d optimized --enable-example --enable-tests configure 的参数optimized改为debug后变为sudo ./waf -d debug --enable-example --enable-tests configure 重新配置编译就可以。
具体指令是:
cd ns-3.27
sudo ./waf clean //清除先前的配置编译
sudo ./waf -d debug --enable-example --enable-tests configure //基于waf的配置调试方式
sudo ./waf
更多更全的参考文章如下:
1.http://blog.csdn.net/and_w/article/details/61619241 点击打开链接
2.http://blog.csdn.net/yanerhao/article/details/52956063 点击打开链接
3.http://blog.csdn.net/rayaohb/article/details/7374615 点击打开链接
4.http://blog.csdn.net/zy416548283/article/details/38682469 点击打开链接