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