天天看點

在Cygwin下移植已編譯的NS2的方法 —— 修改Cygwin的預設啟動路徑

2011-03-03 wcdj

問題背景:

同學Deng的ns2出現了問題,想使用同學Yang的已安裝好的ns2。是以,Deng将已安裝後的ns-allinone-2.27目錄壓縮後全部拷貝到自己的硬碟上。然後Deng再在自己的機子上安裝了Cygwin。安裝好後,為了不改動ns-allinone-2.27中已有的配置,Deng在/home目錄下建立與Yang相同的使用者檔案夾,再把ns-allinone-2.27解壓到此檔案夾下。此時的問題是,由于Deng的使用者名與Yang的使用者名不同,是以在第一次運作Cgywin後,會在/home目錄下自動建立一個Deng的檔案夾,而Deng拷貝過來的ns-allinone-2.27應該位于Yang的檔案夾下,是以需要修改Cygwin的預設啟動路徑。可行的方法如下:

預設情況下,打開Cygwin後,pwd顯示目前路徑為 /home/目前使用者名。例如:

WCDJ@WCDJ_PC ~

$ pwd

/home/WCDJ

方法1:

用 env 指令檢視目前系統中有哪些環境變量,可以找到:

HOME=/home/WCDJ

是以,想改變Cygwin預設啟動路徑就是去修改HOME的環境變量為你所想要的值就可以了。

方法如下:

右鍵 桌面上我的電腦->屬性->進階->環境變量,在上面那個個人使用者的環境變量框中,或者下面的系統變量框中,建立,變量名設定為HOME,變量值為你想要的具體路徑。

如果在自己使用者變量處建,那麼這個變量值的有效範圍就是目前自己使用者。如果在系統變量處建,那麼這個變量值的有效範圍就是目前整個系統,也就是無論哪個使用者登入系統,這個變量都有效。

這樣,每次啟動Cygwin後,就會自動轉到HOME所在路徑下。

方法2:

在C:/cygwin/cygwin.bat裡面加入了這樣一行

@echo off

C:

chdir C:/cygwin/bin

rem 新加的一行,手工指定home的路徑(rem用于注釋)

set HOME=C:/cygwin/home/abc

bash --login -i

這樣Cygwin就會去HOME的這個路徑下面找相關配置檔案,如果C:/cygwin/home/abc下面有 .bashrc, .inputrc, .bash_profile 這樣幾個檔案,Cygwin就能找到相關的配置。而不用管Cygwin是否建立了home,隻要最後Cygwin能找到配置檔案就OK了。

方法 3:

修改目前使用者名,這個不太友善,沒有采取。

關于那三個配置檔案哪裡找去?打開C:/cygwin/etc/skel 目錄,你就會發現它們靜靜的躺在那裡。這三個檔案就是Cygwin一開始為使用者準備的。把這三個檔案拷貝到你的home目錄下就可以了,然後用文本編輯器打開.bashrc 檔案,把你需要設定的環境變量和參數寫在這裡,儲存後重新啟動Cygwin就可以看到已經生效了(注意 :如果不想重新啟動Cygwin使.bashrc檔案生效,輸入source .bashrc 或 . .bashrc 指令即可)。

測試:

[1] ns 成功

[2] ./leach_test 成功

參考:

[1] 修改Cygwin的預設啟動路徑 [Change to default running path of Cygwin]

http://hi.baidu.com/serial_story/blog/item/366978106724b9f9c2ce797a.html

[2] Cygwin home路徑問題

http://www.baisi.net/thread-39168-1-1.html