ns3安装起来比较复杂,自己装了两天写了这个简明的安装教程:
1.下载并安装cygwin:http://cygwin.com/install.html
2.下载并安装python:http://www.python.org/download/
注:安装python不要更改安装目录,如果更改,在windows中注册环境变量。可以在cygwin中用which python命令来查阅是否安装好了python
3.下载并安装mercurial:http://mercurial.selenic.com/release/windows/
注:并不需要安装tortoisehg.tortoisehg是mercurial的一个图形界面,mercurial简称hg,非常亲切的,我用过tortoiseSVN。
4.在cygwin下的安装目录下新建一个文件夹repos,路径是C:\cygwin\home\用户名\repos,输入:
cdmkdir reposcd reposhg clone http://code.nsnam.org/ns-3-allinone
当
Mercurail的
hg命令执行后,可以看到如下结果:
destination directory: ns-3-allinonerequesting all changesadding changesetsadding manifestsadding file changesadded 31 changesets with 45 changes to 7 files7 files updated, 0 files merged, 0 files removed, 0 files unresolved
当clone命令运行结束以后,在前述建立的
repos目录下,会出现一个
ns-3-allinone目录,而且含有如下文件:
build.py*constants.pydist.py*download.py*README util.py
注意:你实际上仅仅下载了一些
Python脚本,下一步就是利用这些脚本根据需要下载并来安装
ns-3软件包。如果你访问如下链接:
http://code.nsnam.org/ 就会发现若干源码库,其中很多是ns3开发团队专用的。其中在源码库
org/ 你会发现名为
ns-3.1的源码库,这是
ns-3的第一个稳定版本。还有一些分散的源码库名为
ns-3.1-reftraces,它为
ns-3.1保留了参考记录。保持这些文件的一致性是非常重要的,尤其是当你想对源码库做一个回归测试时。至少做一次测试来验证所有的程序都正确编译了。
当前的开发版
ns-3的快照存放在
http://code.nsnam.org/ns-3-dev/中;相关的参考记录存放在链接
http://code.nsnam.org/ns-3-dev-ref-traces/中。 ns3开发人员会尽量保持源码库中的代码处于一致,工作的状态,但是他们仍在开发中,有一些未发布过的代码。所以如果你不需要最新的特性的话还是考虑使用发行版。
由于发布版的版本号在变化中,我在指南中还是继续使用通常不变的
ns-3-dev,但是你可以根据自己的需要选择其他的版本,并替换这里的”
ns-3-dev”,(例如,
ns-3.6或
ns-3.6-ref-traces),在下文中,你可以通过访问源码库列表或者访问ns3开始网页找到最新的ns-3发布版软件。
当你从源码库下载完后,继续切换进入你自己建立的
ns-3-allinone目录中。 我们现在使用
download.py脚本来下载
ns-3需要使用的各个部件。继续在你的
shell中输入以下命令 (如果你想使用任意发行版你可以将
ns-3-dev替换为你选择的发行版的名字,例如"
ns-3.6" 和"
ns-3.6-reftraces")。
./download.py -n ns-3-dev -r ns-3-dev-ref-traces
注意,
-n选项的默认参数为
ns-3-dev,
-r选项的默认参数为
ns-3-dev-ref-traces,所以上述命令中这两个选项的参数实际上是多余的。我们使用这个例子来描述如何指定源码库。你只需简单键入如下命令就可以使用默认参数来下载
ns-3-dev:
./download.py
5.虽然教程写的是命令行运行download.py,但是我是直接双击运行的download.py
当
hg (Mercurial)命令执行时,你可以看到如下的信息:
## Get NS-3#Cloning ns-3 branch=> hg clone http://code.nsnam.org/ns-3-dev ns-3-devrequesting all changesadding changesetsadding manifestsadding file changesChapter 3: Getting Started 8added 4634 changesets with 16500 changes to 1762 files870 files updated, 0 files merged, 0 files removed, 0 files unresolved
这些输出信息显示下载脚本已经从源码库中下载到了实际的
ns-3源码,紧接着,你就会看到这样的信息:
## Get the regression traces#Synchronizing reference traces using Mercurial.=> hg clone http://code.nsnam.org/ns-3-dev-ref-traces ns-3-dev-ref-tracesrequesting all changesadding changesetsadding manifestsadding file changesadded 86 changesets with 1178 changes to 259 files208 files updated, 0 files merged, 0 files removed, 0 files unresolved
这表明下载脚本为你下载了参考记录文件。下载脚本被设计成自适应的,它能检测在一些系统平台上某些
ns-3模块不被支持,在你的系统平台上,你可能看不到这些系统不支持的源码被下载。然而,在大多数系统平台上这样的过程会显示如下:
## Get PyBindGen#Required pybindgen version: 0.10.0.640Trying to fetch pybindgen; this will fail if no network connection is available. Hit Ctrl-=> bzr checkout -rrevno:640 https://launchpad.net/pybindgen pybindgenFetch was successful.
这些信息显示了下载脚本在为你下载
Python绑定生成器的过程,下一步你就可能看到如下的信息(不同的系统平台表现有所不同),
## Get NSC#Required NSC version: nsc-0.5.0Retrieving nsc from https://secure.wand.net.nz/mercurial/nsc=> hg clone https://secure.wand.net.nz/mercurial/nsc nscrequesting all changesadding changesetsadding manifestsadding file changesadded 273 changesets with 17565 changes to 15175 files10622 files updated, 0 files merged, 0 files removed, 0 files unresolved
这些信息显示了下载脚本在为你下载网络仿真器支架程序(NSC)的过程。
当复制命令结束,你在
~/repos/ns-3-allinone目录下会有几个新目录:
build.py* constants.pyc download.py* ns-3-dev-ref-traces/ pybindgen/ util.pyconstants.py dist.py* ns-3-dev/ nsc/ README util.pyc
继续进入
ns-3-dev目录,你会见到如下的文件:
AUTHORS examples/ regression/ scratch/ waf*bindings/ LICENSE regression.py src/ waf.bat*CHANGES.html ns3/ RELEASE_NOTES utils/ wscriptdoc/ README samples/ VERSION wutils.py
现在可以准备编译
ns-3软件了。
6.同样的,下面的教程使用命令行进行build,而我直接双击运行了build.py
如果你是第一次编译
ns-3软件包,建议使用
allinone环境,它会为你以最常用的方式配置工程。
切换到你在上文下载一节中创建的目录下。如果你使用
Mercurial下载,请进入
~/repos目录下的
ns-3-allinone目录,如果你使用
tarball下载,找到
~/tarballs目录下类似
ns-allinone-3.6的目录,键入如下的命令,并请耐心等待:
./build.py
编译脚本开始编译下载的ns3时,你会看到大量常见的编译器输入信息。最后你会看到如下编译成功的好消息:
Waf: Leaving directory ‘/home/craigdo/repos/ns-3-allinone/ns-3-dev/build’’ build’ finished successfully (2m30.586s)
一旦工程编译好,你就可以不再使用
ns-3-allinone脚本包了。你已经从其中获取必要的东西,现在是你直接同
Waf交互的时候了,它位于
ns-3-dev目录中,并不在
ns-3-allinone目录中。切换到
ns-3-dev目录下(或者你下载的版本的相应目录下):
cd ns-3-dev
参考文献:
【1】步骤2和3参考http://mercurial.selenic.com/wiki/WindowsInstall
【2】步骤1、4、5、6参考自http://yangfei1.blog.51cto.com/1471532/368586、http://yangfei1.blog.51cto.com/1471532/368585