cygwin安裝問題

cygwin安裝問題

關於cygwin的安裝:
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:/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文件夾,再刪掉註冊表裏的兩條內容就可以了。
[來源]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章