Step1: 更新系統
sudo apt-get update #更新源清單
sudo apt-get upgrade #更新已經安裝的包
sudo apt-get dist-upgrade #更新軟體,更新系統
Step2:安裝ns2需要的幾個包
sudo apt-get install build-essential
sudo apt-get install tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev #for tcl and tk
sudo apt-get install libxmu-dev libxmu-headers #for nam
Step3:下載下傳安裝包,并複制到需要安裝的目錄
官網下載下傳位址:http://www.isi.edu/nsnam/ns/,這裡下載下傳allinone
tar xvfz ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
sudo ./install #進行安裝
第一次安裝報錯:
linkstate/ls.h:137:20: note: use ‘this->erase’ instead
make: *** [linkstate/ls.o] Error 1
Ns make failed!
修改ls檔案:ns-2.35/linkstate/ls.h
第137行
void eraseAll() { erase(baseMap::begin(), baseMap::end()); }
改為:void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }
儲存後 sudo ./install #重新安裝順利完成
Step4:配置環境變量
修改目前使用者環境變量(1、 對應的檔案為'/home/使用者名'中的.bashrc,并非'/ns-allinone-2.35'底下的空白.bashrc。2、或者重新打開一個端口,輸入:sudo gedit .bashrc。這兩種方法不知道有啥差別,親測可行)。
gedit ~/.bashrc
在檔案末尾添加
# add path for ns2
export PATH="$PATH:/home/安裝檔案夾名/ns-allinone-2.35/bin:/home/安裝檔案夾名/ns-allinone-2.35/tcl8.5.10/unix:/home/安裝檔案夾名/ns-allinone-2.35/tk8.5.10/unix"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/安裝檔案夾名/ns-allinone-2.35/otcl-1.14:/home/安裝檔案夾名/ns-allinone-2.35/lib"
export TCL_LIBRARY="$TCL_LIBRARY:/home/安裝檔案夾名/ns-allinone-2.35/tcl8.5.10/library"
Step5:驗證ns2安裝
關閉終端,重新開機終端,輸入ns,出現%,說明ns2安裝成功
注意:環境變量配錯的話,會提示
“程式“ns”尚未安裝。 您可以使用以下指令安裝:
sudo apt-get install ns2”
請勿通過該指令安裝,還是回到Step4修改環境變量吧!
Step6:安裝nam
進入nam目錄:cd ns-allinone-2.35/nam-1.15
進入後sudo ./configure,然後sudo make
最後sudo make install
指令行輸入nam彈出nam console說明nam安裝成功。
注意:如果通過“sudo apt-get install nam”安裝的nam,執行nam指令會報異常
“段錯誤,核心檔案已轉儲”
遇到該問題的網友可以“sudo apt-get remove --purge nam”解除安裝nam及其配置後按Step6安裝。
Step7:測試simple.tcl
cd ns-allinone-2.35/ns-2.35/tcl/ex/
ns simple.tcl
出現如下圖所示,代表成功安裝!恭喜!
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMwAzNzkzMyIDOwQDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)