最近接了一個須要進行網絡模擬的項目。對與網絡模擬一竅不通的本人算是一個挑戰。因而乎開始整日上網搜索相關的資料,沒想到這個世界的資源真是豐富多彩。最後發現了一個網絡模擬的流行軟件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的模擬環境,可是它不像上面提到的虛擬機,不會佔用系統的很大資源,關於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:cygwinhomeyourid)生成三個配置文件,.bashrc,.bashprofile和.inputrc文件,這三個文件中最重要的是.bashrc文件,用戶之後要自定義環境變量要用到該文件。若是你沒有將軟件安裝在c:cygwin目錄下,首先請驗證是否在你的安裝目錄下生成了home文件夾,若是沒有請去c盤看看是否在c盤生成了一個cygwin目錄,並在底下創建了相應的home文件夾。
注意,在這裏不少人會遇到沒有生成home文件夾或者三個配置文件夾的狀況(本人就深被此問題折磨)。因而在網上狂搜了一陣,確實發現了有人給出瞭解決方案,好比說重啓windows系統,重裝系統後一開始直接裝cygwin等。可是,我只能說這些方法都是不靈驗的,由於沒有找到根本緣由。後來本人仔細讀了C:cygwinetcprofile文件發現了問題的所在,關鍵問題出如今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 settingsuserid,cygwin不會在安裝目錄下生成專門的home目錄和配置文件了。若是cygwin獲取不到windows的用戶home環境變量的內容,還會依次從二、三、4中尋找是否有合適的用戶home信息,只有這些都沒有的時候,cygwin纔會嘗試開始建立專門的用戶home目錄以及相應的配置文件。
知道了問題所在,解決起來也就容易了,首先一個最簡單的方法就是在個人電腦上點擊右鍵,選擇屬性,在彈出的菜單中選擇高級,而後點擊環境變量,在userid的用戶變量(userid是你的帳戶名稱)的菜單欄中找到HOME變量一欄,點中後選擇刪除(建議刪除前先備份其中的值,以便之後有須要能夠恢復。)而後點肯定,肯定就能夠了。而後從新點開cygwin就能夠看到屏幕上提示正在寫用戶信息。而後到c盤cygwin目錄下就能夠看到生成了homeuserid文件夾,並在裏面生成了相應的三個配置文件信息。
固然你可能會質疑上面的方法是否會形成系統的不穩定,至少筆者到目前尚未發現任何不穩定現象。固然實際上咱們之因此須要cygwin的home目錄主要是但願可以得到.bachrc這個重要的用戶信息配置文件。然而一般咱們用cygwin都只有咱們本身這一個用戶,而不像在linux中可能的多用戶。因此咱們若是不想破壞windows系統的環境變量設置,能夠採起的方法是,咱們直接將想要配置的信息放到全局.bashrc文件中就能夠了。全局.bashrc是安裝完cygwin就存在的,它位於:c:cygwinetc目錄下,名字是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:cygwinhomestone(stone是個人機器名,機器名不能是有空格的兩個單詞,如a b)目錄下。
4.點桌面圖標進入cygwin,自動建立3個文件,在C:cygwinhomestone下,分別是.bashrc .bash_profile 和.inputrc
用tar xvfz ns-allinone-2.29.tar.gz解壓文件。
修改C:cygwinhomedinglanns-allinone-2.29nam-1.11agent.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:cygwinhomeuseridns-allinone-2.29bin目錄中。可是也有特殊的狀況就是若是在bin目錄下找不到nam命令時,首先進入目錄home/userid/ns-allinone-2.29/nam-1.11,而後運行命令(./configure && make && make install)後會在homeuseridns-allinone-2.29nam-1.11目錄下生成一個nam.exe文件,把nam.exe文件拷貝到homeuseridns-allinone-2.29bin目錄下就能夠了。須要注意的是若是bin目錄下有nam.exe和ns.exe目錄,依然提示找不到NAM命令,一般是因爲沒有在環境變量中正常設定ns的path。請從新驗證本身在.bashrc文件中設置的環境變量是否正確。你們還能夠在網絡中找到更多相似的設定ns環境變量的文章。
再次還須要提示的是,若是用戶輸入startxwin.bat命令後,沒有彈出一個新的x字符窗口,那麼首先請肯定在安裝cygwin時,x11包是徹底安裝了的,不然請從新徹底安裝。若是的確徹底安裝了x11包,那麼請到C:cygwinusrX11R6bin目錄中找到startxwin.bat文件,右鍵編輯找到SET CYGWIN_ROOT=cygwin,肯定CYGWIN_ROOT變量確實對準了安裝路徑。html
這兩天發現不少人都問到安裝過程當中的路徑問題以及/home找不到等,其實我在置頂的貼裏已經寫了一篇詳細的安裝解釋的文章,發現你們都不肯意去看,只好專門寫一貼來說解各類路徑設定的問題。
首先,你們安裝完後若是第一次啓動會看到窗口提示正在建立用戶的三個文件分別是.bashrc
.bash_profile和.bashrc。這時你們到本身的cygwin安裝目錄下(默認爲c:cygwin下)必定會發現一個home目錄,而且在home目錄下創建了上面三個文件。
而一般xp下則不會建立這個home目錄,至於具體緣由能夠去讀一下我置頂文章裏的解釋,這裏再也不重複,解決方法以下
右鍵個人電腦,屬性,高級,環境變量,在你本身的用戶變量列表中找到HOME變量,刪掉它。關掉cygwin後重啓,就必定會看到系統開始建立home目錄和三個配置文件。
可是,因爲不少緣由,好比說有的人在本身的用戶環境變量裏找不到HOME這個變量(寒,仍是重裝系統吧,orz)可能cygwin就是不能給咱們生成/home文件,咱們同樣能夠解決這個問題。其實只要明白咱們爲啥要找到/home文件夾,這個問題就好解決了?主要想要裏面的.bashrc文件。因此重要的不是這個/home文件夾,而是哪裏能設置咱們須要的cygwin的環境變量。這時要作的一件事就是首先弄清楚,cygwin默認的你的/home文件夾到底在哪裏?這個確認很簡單。
1.進入cygwin後,打pwd命令後,返回的必定是你的默認home路徑。正常狀況下是/home/yourid(完整路徑爲c:cygwinyourid)。完整路徑的得到方法則是輸入 cygpath -dm "`pwd`"就能夠了。
2.或者你能夠輸入env命令,找到HOME這一項,能夠看到HOME=...,等號後面的就是你如今的默認home路徑。
只要知道這個默認的home路徑,問題解決起來就容易多了。咱們只要把三個配置文件拷貝到這個默認的home目錄下,問題就解決了。那你會問這三個配置文件哪裏找去?打開C:cygwinetcskel目錄,你就會發現它們靜靜的躺在那裏。這三個文件就是cygwin一開始爲用戶準備的。把這三個文件拷貝到你的home目錄下就能夠了,而後用文本編輯器打開.bashrc文件,把你須要設定的環境變量和參數寫在這裏,保存後從新啓動cygwin就能夠看到已經生效了。linux