ns&cgywin安裝(轉載)

最近接了一個需要進 行網絡模擬的項目。對與網絡模擬一竅不通的本人算是一個挑戰。於是乎開始整日上網搜索相關的資料,沒想到這個世界的資源真是豐富多彩。最後發現了一個網絡 模擬的流行軟件NS2,在經過多次嘗試後,終於成功的安裝並運行了該軟件。下面就分享一下本人的安裝經驗。(本文特別綜合了各種安裝方法、併成功解決了如 Cygwin沒有生成home文件夾和.bashrc文件的問題以及提供了Cygwin的卸載方法)

      首先如果想要了解NS以及相關內容,我力薦下面這個論壇,資源可以說相當的豐富,而且斑竹認真負責
http://www.baisi.net/forum-440-1.html

      閒話少說,下面進入正題,開始安裝我們的NS2網絡模擬器。可惜不巧的是這個模擬器只能運行在linux平臺下。如果本身就是linux平臺我們只要下 載相應的軟件包解壓後,運行install.exe,安裝完成後再設定一下環境變量就ok了(具體的下載及安裝過程見後面描述)。如果是windows平 臺,一般有以下三種解決方案:
1.裝雙系統吧,就是劃出一個分區裝一個linux系統,通常就是red hat,fedora之類的啦,雙系統的安裝方法baidu或者google一下應該有一大堆,就不贅述了。

2.裝個虛擬機也不錯,通常就是Vmware和virtual PC這兩款,安裝簡單,使用方便。裝完虛擬機後,再在上面安裝一個linux的操作系統就ok了。最後再在虛擬的操作系統上安裝NS2就ok了,這種方法 的最大特點就是,非常的佔系統資源,尤其是內存資源。如果系統配置不高的,就不要使用這個方法

3.這個方法也是我使用的方法,就是Cygwin+NS2了,這也是網絡上通常推薦的做法。關於這個安裝方法,網上也是寫了一大堆,但是個人覺得最實用的是以下這個網址所推薦的:
http://hi.baidu.com/7stone7/blog/item/1f69b38bb5a0647f9e2fb4bb.html
這個裏面提到的方法如下:

    1. 最好不要到www.cygwin.com下載cygwin..也就是說不要從Internet上安裝cygwin,而要從本地安裝(PS:往往千奇百怪的錯誤就是因爲從internet下載的cygwin的版本引起的)。,從這裏下載http://140.116.72.80/~smallko/ns2/ns_setup.rar
    2.解壓下載的文件點setup..選“Install from Local Directory”,選好下載的文件所在的位置"ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin", 安裝 XFree86-base, XFree86-bin, XFree86-prog, XFree86-lib, XFree86-etc, make, patch, perl, gcc, gcc-g++, gawk, gnuplot, tar and gzip 。

     在這裏有幾點解釋,首先cygwin也是一個linux的模擬環境(準確說是一個unix模擬環境,爲了方便解釋理解爲一個linux的模擬環 境),但是它不像上面提到的虛擬機,不會佔用系統的很大資源,關於cygwin和虛擬機的區別的具體描述大家可以從網上搜到相關的文章。下面進入正題,www.cygwin.com下載cygwin的確有一些麻煩,進入網站後,在網站的右上角有一個install now的圖標,點擊後就會得到一個幾百k的setup.exe文件,這個文件就是一個專門下載cygwin軟件的一個客戶端,可以讓用戶自定義下載所需的部分,並且支持短點續傳。

       運行下載下來的setup.exe大家可以選擇三種方式,第一個是直接從網上安裝,這個方法會幫用戶將軟件下載到本地和安裝這兩個動作一起完成。第二個是 只下載不安裝,第三個則是從已下載的本地文件安裝,按照上面的地址下載的壓縮包已經包含了setup.exe和下好的軟件安裝包,大家選擇從本地直接安裝 就可以了。

        如果大家沒有下載上面的安裝包,而是直接選擇第一項,點擊下一步就會出現提示輸入軟件要安裝的位置(這裏推薦直接安裝在c:/cygwin目錄下, 不然可能會有問題),再點一下步則會提示你選擇軟件安裝文件保存在本地的位置。在點下一步會讓你選擇連接網絡的方式,通常就是第一項直接連接,點擊下一步 後,客戶端會下載鏡像列表,下載完成後列出可用的下載站點。如果你是教育網,你就選擇一個含有edu的ftp或http地址,如果你是公網就選擇臺灣的 ftp或http地址好了,如果這些網站都很慢,你就選擇http裏的cygwin.basemirror或cygwin.cybermirror這兩個 比較通用。選擇完成後點擊下一步,這時客戶端會下載一個setup.bz文件,這個文件包含了你選擇的下載站點的安裝文件的目錄信息。完成後客戶端會列出 所有的軟件列表,這時用戶可以自行選擇需要安裝的部分,建議點擊all右邊的defaul,讓它變成install,這樣就是完整安裝,不過這樣比較大, 安裝文件有600多兆,安裝後可以達到2g左右,如果空間不是很大的人,建議下載上面給出的軟件包,完全安裝後也非常小。選擇完成後客戶端就開始下載軟 件,下載完成後就會開始自動安裝,安裝完成後,彈出一個提示框installation complete.

     如果,由於某種原因在下載中途你關閉了setup.exe你可以重新啓動它,按照剛纔的步驟重新選擇,但是注意所有的選項都必須和以前一樣 (setup.exe會自動記住你上次的選擇)。如果你改變了任意一項都將不能再斷點續傳。但是注意,如果某一個具體文件,比如perl.tar.gz 大小爲3m左右,如果你下載了1m時退出,它還是會重新下載這個文件。但是perl.tar.gz以前的文件則不會重新下載了。

       選擇第一項按裝的時候,會在setup.exe文件所在目錄下生成一個setup.log文件,這個文件記錄着用戶的下載和安裝進度。所以在下載和安裝完 成之前不要刪除這個文件。但是如果安裝完成後,你又卸載了Cygwin軟件後,再想重新從本地安裝的時候,請先刪除這個文件,否則系統提示不需要安裝。

       如果你選擇了第二項只保存不安裝那麼,點擊下一步後不會問你軟件需要安裝的位置,而是直接問你軟件要保存的位置,選擇好後後面的步驟跟選擇第一項時一模一樣。     

       如果你選擇了第三項從本地安裝,點擊下一步後,它會首先提示你軟件要安裝的位置,點擊下一步後,它會讓你選擇你所下載的軟件保存的位置,如果你直接下載了 我所說的軟件壓縮包,那麼你可以選擇壓縮包裏的ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin文件夾, 選擇完成後一直點擊下一步軟件將自動完成安裝過程。

       安裝完成後,在桌面上會看到一個Cygwin的圖標,雙擊運行後會彈出一個類似linux的一個字符界面。如果你點擊了該圖標沒有反應,那麼恭喜你,你的 bash文件沒有安裝成功,儘管你在安裝的時候可能已經全選了shell包,但是這沒有用,具體還需要安裝哪些文件筆者也沒有摸索清除,所以建議一開始就 選擇完全安裝。這個時候,你可以重新完全安裝覆蓋原來的安裝文件夾,或者卸載已安裝的軟件,重新安裝(具體卸載方法請看後文)。如果第一次啓動, Cygwin會在你的安裝目錄下(c:/cygwin)目錄下生成一個home目錄,並在home目錄下建立一個和你的windows賬戶名一樣的一個文 件夾,比如文件夾名爲yourid。並且會在這個文件夾下(c:/cygwin/home/yourid)生成三個配置文件,.bashrc,. bashprofile和.inputrc文件,這三個文件中最重要的是.bashrc文件,用戶以後要自定義環境變量要用到該文件。如果你沒有將軟件安 裝在c:/cygwin目錄下,首先請驗證是否在你的安裝目錄下生成了home文件夾,如果沒有請去c盤看看是否在c盤生成了一個cygwin目錄,並在 底下建立了相應的home文件夾。

       注意,在這裏很多人會遇到沒有生成home文件夾或者三個配置文件的情況(本人就深被此問題折磨)。於是在網上狂搜了一陣,確實發現了有人給出瞭解決方 案,比如說重啓windows系統,重裝系統後一開始直接裝cygwin等。但是,我只能說這些方法都是不靈驗的,因爲沒有找到根本原因。後來本人仔細讀 了C:/ cygwin/ etc/ profile 文件發現了問題的所在,關鍵問題出現在profile中第31行的腳本中,如下所示:

# Here is how HOME is set, in order of priority, when starting from Windows
#  1) From existing HOME in the Windows environment, translated to a Posix path
#  2) from /etc/passwd, if there is an entry with a non empty directory field
#  3) from HOMEDRIVE/HOMEPATH
#  4) / (root)
# If the home directory doesn't exist, create it.
if [ ! -d "$HOME" ]; then
mkdir -p "$HOME"
echo "Copying skeleton files."
echo "These files are for the user to personalise"
echo "their cygwin experience."
echo
echo "These will never be overwritten."
echo
cd /etc/skel
/bin/find . -type f | while read f; do
  fDest=`echo $f | sed -e 's/^/.//g'`
  if [ ! -e "$HOME$fDest" -a ! -L "$HOME$fDest" ]; then
   /usr/bin/install -D -p -v "${f}" "${HOME}/${fDest}"
  fi
done
fi

       我們從頭5行註解中可以看到(#打頭的行爲註解行,每一個#代表一行),cygwin的home文件加的獲取優先次序是首先從windows系統的環境變 量中獲取用戶的windows中的home文件夾位置作爲home,這樣通常啓動後,用戶在屏幕中敲入pwd會看到顯示的目錄是c:/document and settings/userid,cygwin不會在安裝目錄下生成專門的home目錄和配置文件了。如果cygwin獲取不到windows的用戶 home環境變量的內容,還會依次從2、3、4中尋找是否有合適的用戶home信息,只有這些都沒有的時候,cygwin纔會嘗試開始創建專門的用戶 home目錄以及相應的配置文件。

      知道了問題所在,解決起來也就容易了,首先一個最簡單的方法就是在我的電腦上點擊右鍵,選擇屬性,在彈出的菜單中選擇高級,然後點擊環境變量,在 userid的用戶變量(userid是你的賬戶名稱)的菜單欄中找到HOME變量一欄,點中後選擇刪除(建議刪除前先備份其中的值,以便以後有需要可以 恢復。)然後點確定,確定就可以了。然後重新點開cygwin就可以看到屏幕上提示正在寫用戶信息。然後到c盤cygwin目錄下就可以看到生成了 home/userid文件夾,並在裏面生成了相應的三個配置文件信息。

      當然你可能會質疑上面的方法是否會造成系統的不穩定,至少筆者到目前還沒有發現任何不穩定現象。當然實際上我們之所以需要cygwin的home目錄主 要是希望能夠獲得.bachrc這個重要的用戶信息配置文件。然而通常我們用cygwin都只有我們自己這一個用戶,而不像在linux中可能的多用戶。 所以我們如果不想破壞windows系統的環境變量設置,可以採取的方法是,我們直接將想要配置的信息放到全局.bashrc文件中就可以了。全局. bashrc是安裝完cygwin就存在的,它位於:c:/cygwin/etc目錄下,名字是bash.bashrc。打開它會發現有一行註解# System-wide .bashrc file。只要將自己想要設的環境變量放到這裏,效果和放到用戶自己目錄下的.bashrc中是一樣的。
關於cygwin的使用信息,大家可以參看linux下的常用命令。這裏推薦一個好的網站:
http://blog.csdn.net/onefish/archive/2004/12/25/229192.aspx
這個網站描述了一些cygwin使用的比較好的設置技巧,比如說如何顯示中文文件名等問題。
關於cygwin的卸載,下面是一個比較好的網址:
http://blog.sina.com.cn/u/4b8c4f4c010007g9
這裏提示的是,通常可以直接刪除cygwin文件夾,再刪掉註冊表裏的兩條內容就可以了。
關於cygwin的安裝過程就介紹到這裏,下面開始講解如何在linux下安裝ns2的方法。具體方法依然可以參看
http://hi.baidu.com/7stone7/blog/item/1f69b38bb5a0647f9e2fb4bb.html
具體描述如下:
3. 到www.isi.edu/nsnam/dist/ns-allinone-2.29.tar.gz, 下載ns-allinone-2.29到c:/cygwin/home/stone/(stone是我的機器名,機器名不能是有空格的兩個單詞,如a b)目錄下。
4.點桌面圖標進入cygwin,自動創建3個文件,在C:/cygwin/home/stone下,分別是.bashrc .bash_profile 和.inputrc
     用tar xvfz ns-allinone-2.29.tar.gz解壓文件。
     修改C:/cygwin/home/dinglan/ns-allinone-2.29/nam-1.11/agent.h文件第73行NULL爲0。
     用cd ns-allinone-2.29進入/home/dinglan/ns-allinone-2.29目錄。
     用./install進行ns安裝。
     進入 /home/stone/.bashrc(最好用Uedit32編輯器)編輯.bashrc文件
        在文件的最後加入
     export NS_HOME="/home/stone(你的機器名)/ns-allinone-2.29"
     export PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/bin:$PATH"
     export LD_LIBRARY_PATH="$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/
     unix:$NS_HOME/otcl-1.11:$NS_HOME/lib:$LD_LIBRARY_PATH"
     export TCL_LIBRARY="$NS_HOME/tcl8.4.11/library"

    5.若要驗證的就用cd ns-allinone-2.29/ns-2.29 ; ./validate
不過要花好長時間,我沒等驗證完就關了。可以運行example2.tcl 的例子:啓動cygwin,cd ns-allinone-2.29/ns-2.29,cd ns-tutorial/examples,然後startxwin.bat,ns example2.tcl。
    如果錯誤是“找不到NAM命令”,那麼把nam.exe和ns.exe都copy到examples目錄下就行了
     這幾個步驟描述的非常的詳細和正確,不需要筆者再贅述了,需要提示的如果系統提示“找不到NAM命令”時(筆者沒有出現這個問題),nam.exe 和ns.exe的位置在C:/cygwin/home/userid/ns-allinone-2.29/bin目錄中。但是也有特殊的情況就是如果在 bin目錄下找不到nam命令時,首先進入目錄home/userid/ns-allinone-2.29/nam-1.11,然後運行命令 (./configure && make && make install)後會在home/userid/ns-allinone-2.29/nam-1.11目錄下生成一個nam.exe文件,把 nam.exe文件拷貝到home/userid/ns-allinone-2.29/bin目錄下就可以了。需要注意的是如果bin目錄下有 nam.exe和ns.exe目錄,依然提示找不到NAM命令,通常是由於沒有在環境變量中正常設定ns的path。請重新驗證自己在.bashrc文件 中設置的環境變量是否正確。大家還可以在網絡中找到更多類似的設定ns環境變量的文章。
    再次還需要提示的是,如果用戶輸入startxwin.bat命令後,沒有彈出一個新的x字符窗口,那麼首先請確定在安裝cygwin時,x11包是完全 安裝了的,否則請重新完全安裝。如果的確完全安裝了x11包,那麼請到C:/cygwin/usr/X11R6/bin目錄中找到 startxwin.bat文件,右鍵編輯找到SET CYGWIN_ROOT=/cygwin,確定CYGWIN_ROOT變量確實對準了安裝路徑。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章