cygwin+ns2的安裝總是安裝不成功,特別是在選擇包的時候,這次總結一下,以免遺忘
1.安裝cygwin http://www.cygwin.com/setup.exe下載setup.exe,也可以到http://www.cygwin.cn/site/install/這個網站下載這是cygwin的中國鏡像。
運行,得到這個介面:
點下一步
選擇“Install from Internet”,如果是再安裝的話或者是把包已經下載到了本地,可以選從本地安裝。
可以自己選擇一個目錄安裝。現在(10/13/05)的cygwin版本跟NTFS完全相容,所以不用擔心,可以放心的把它裝在NTFS分區。至於Test File Type,建議最好設成unix,雖然我沒試過用dos格式,但是鑒於OpenSource的軟體原本都是linux/unix下的,所以最好還是用unix
繼續下一步
選擇一個儲存package的地方,我們要用到的package大小大概是60M。當然,如果選擇的是Install From Local Directory,那麼這一步就會變成“指定package所在的位置”
下一步
下一步
選擇鏡像網站。cygwin有很多鏡像網站(但是上面列的都是國外的),下面推薦一個cygwin的中國鏡像網站。可以選擇其中一個下載package。也可以自己指定一個網站。您可以在下載列表裡選擇:http://www.cygwin.cn或者如果沒有的話,直接在URL裡輸入http://www.cygwin.cn/pub/,然後點add,就能將這個地址加到上面的鏡像列表中,然後可以選擇這個鏡像進行安裝。44.選擇安裝的路徑,一般是C:/Cygwin,選擇本地臨時目錄,用於存放下載的軟體;選擇您串連互連網的方式,一般選“直接連接”就可以了。
下一步
選擇要安裝的軟體包。這裡我只列出ns2需要的包,其中不包括安裝程式預設安裝的包:
gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
xorg-x11-xwin
點右上方的view,使它旁邊的狀態顯示為Full,你就能看到按字母順序排序的package列表,在這些包前點滑鼠,使它們處於非“Skip”的狀態
下一步
開始下載檔案,準備安裝。下載過程會比較慢,因為總檔案有60多M,且分成很多小檔案。
下載完成後,系統會自動開始安裝
安裝過程還是比較慢的,耐心等待就是了
安裝完成
讓人高興的提示
到這裡,cygwin安裝完成,這時案頭上應該出現了一個cygwin的表徵圖,點擊運行,就能看到cygwin的介面了
2.接下來就是安裝ns2了http://www.isi.edu/nsnam/dist/ns-allinone-2.30.tar.gz
下載ns-allinone安裝包。
下載完後,用winrar把裡面的檔案都解壓到 cygwin安裝目錄下的 home目錄的子目錄下,比如在我這裡就是 c:/cygwin/home/color 。
啟動cygwin,
cd /home/color/ns-allinone-2.30
./install
安裝過程就開始了。由於目錄不一樣,上面的命令可能不太一樣。
安裝過程是很漫長的,因為我們下載的是源檔案,機器還得先編譯,等吧……
安裝完後會出現這個提示:
這時還需要修改路徑資訊,把可執行檔的路徑加到PATH環境變數中
開啟 c:/cygwin/home/color/.bashrc (當然,根據安裝路徑不同,這個檔案所處的位置也不同),在檔案末尾加入這些資訊:
export NS_HOME=/home/color/ns-allinone-2.30
export PATH=$NS_HOME/nam-1.12:$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/bin:$PATH
export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:$NS_HOME/otcl-1.12:$NS_HOME/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=$NS_HOME/tcl8.4.13/library
.bashrc檔案可以用記事本開啟,不過最好用UE,因為它是unix格式的文本
儲存.bashrc,開啟cygwin,運行 startxwin.bat
這時應該出現這樣的視窗:
運行
cd /home/hct/ns-allinone-2.28/ns-2.28/ns-tutorial/examples
ns example2.tcl
應該會出現這樣的視窗:
這就表示ns2安裝圓滿完成了!
問題和解決:
P1: 運行 startxwin.bat 時提示“No Such File or Directory”
S1: 可能是沒有安裝X-Startup-Scripts,重新運行setup.exe,然後選擇安裝就行了
也可能是環境變數沒有設定好,按上面的設定再檢查一遍,注意要把 hct 改成你相應的名字
另外,應該運行 startxwin.bat ,不能只打 startxwin
P2:cygwin由於使用的是外國代理,安裝很慢,而且容易出錯
S2:可以分批下載包安裝,而且有的命令沒有可以補安裝
P3: 運行 ns examples2.tcl 時提示" no such file or directory"
S3: 如果是找不到 examples2.tcl 那就是你打 cd /home/hct/ns-allinone-2.30/ns-2.30/ns-tutorial/examples 的時候出了錯;ns-allinone-2.30以上版本是沒有例子的可以從低版本上下如2.8;如果是找不到ns,那就是環境變數沒設定好
P4: 運行 ns examples2.tcl 時提示“nam: no such file or directory”
S4: 看看你的 /home/hct/ns-allinone-2.28/nam-1.11 目錄下有沒有 nam.exe 檔,有的話就是你的環境變數設定錯了,注意要把 nam-1.11 這個目錄加到PATH中
如果沒有nam.exe,那就是編譯nam時出錯了。運行 gcc -dumpversion 看看你的gcc版本,如果是3.4.x,那就好辦了。找到 nam-1.11/agent.h ,把它的第73行中的NULL改成0,然後回到nam-1.11目錄,運行 ./configure 然後運行 make,等運行完畢,再試試 ns example2.tcl 就應該沒問題了
如果gcc版本不是3.4.x,那就不知道是什麼問題了,不過可以肯定是編譯出了錯,所以換個nam版本試試吧
P5: NS2安裝中遇見以下問題:bash: $'/r': command not found
S5: 其原因是cygwin 指令碼是用UNIX的 EOL “/n". 而自己的指令碼用了DOS的 EOL , "/n/r".
解決辦法是對/home/XXX(你的主機名稱)下的 .inputrc、.bashrc、.bash_profile和/etc下的 bash.bashrc、運行 dos2unix 就行了。具體可下載dos2unix ,
安裝後用dos2unix -n /home/color/.inputrc /home/color/.inputrc
這樣就會出現.inputrc 被轉換為UNIX的資訊,再運行ns,出現%就說明正確了。