我自己前後安裝過好幾次NS3了,網上其他相關的部落格質量都不是很好,因此自己總結了一個ns3的安裝過程。
首先先去網址https://www.nsnam.org/releases/下載自己想要安裝的NS-3的原始碼。
然後使用如下命令解壓: tar xjf ns-allinone-3.26.tar.bz2
第一步:處理gcc/g++版本
ns3的安裝需要使用gcc和g++編譯,但是Ubuntu18.04系統預設的gcc/g++版本一般在7.X多,而ns3的編譯不支援太高版本的gcc/g++,如果不將gcc/g++降級的話,在編譯安裝ns3時會失敗。
可以先通過命令gcc -v
檢視一下系統中當前gcc/g++版本。
如果確實較高則執行如下命令降低gcc和g++版本:
#安裝低版本gcc和g++
sudo apt-get install gcc-5
sudo apt-get install g++-5
#進入/usr/bin目錄
cd /usr/bin
#先備份
sudo mv gcc gcc.backup
sudo mv g++ g++.backup
#然後將我們下載的5.幾版本的gcc和g++連結過去
sudo ln -sf gcc-5 gcc
sudo ln -sf g++-5 g++
#參看是否降級成功
gcc -v
注意:sudo apt-get install gcc-5
這條命令如果寫出具體的gcc版本在我的系統上無法成功執行,但是模糊的寫一個gcc-5
就可以成功執行,命令會自動下載一個gcc-5.5。g++同理。
第二步:安裝相關依賴
在正式編譯安裝ns3之前,要先安裝很多依賴軟體,執行以下命令安裝這些依賴即可:
sudo apt-get update
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 libgsl-dev libgsl2
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++ gcc
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 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*
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
可以把這些命令複製到一個指令碼檔案裡一次性執行,免得一條一條執行太麻煩。
第三步:正式安裝
1、先進入到目錄ns-allinone-3.26,然後執行如下命令:
cd ns-allinone-3.26
sudo ./build.py
2、然後進入到目錄ns-3.26,執行命令
cd ns-3.26
sudo ./waf clean
3、在目錄ns-3.26下,執行如下命令完成編譯安裝
sudo ./waf -d debug --enable-example --enable-tests configure
sudo ./waf
如圖下圖所示,出現該情況表示編譯成功
第四步:測試
在ns-allinone-3.26/ns-3.26目錄下,執行如下命令,測試是否安裝成功:
sudo ./waf --run hello-simulator
輸出Hello Simulator表示安裝成功
到目前為止ns3視覺化動畫工具netanim還是不能用的狀態,後續會更新netanim的安裝過程。
參考文獻:
https://www.jianshu.com/p/2c6c38ebe936
https://blog.csdn.net/wuzhiwuweisun/article/details/79483178