Cygwin 完全下載及安裝

轉載:http://blog.chinaunix.net/uid-20178959-id-1731456.html

cygwin 確實很難下。鬱悶了兩天,終於看到了這篇文章。真的很感謝作者.

     本人爲了學習標準C++,偶選擇了眼下如日中天的Eclipse做爲IDE,爲了讓Clipse支持C++開發,除了要下載個CDT插件外,就是要下載並安裝Cygwin(或者MingW)了。豈料Cygwin這東西可不是那麼好下載的,兩個星期以來我反反覆覆下載了不下一百次,嘗試了無數種方法,總是下載到百分之二十幾時就下載失敗,一番嘔心瀝血之後終於摸索出了正確的下載方法,並將最新版的Cygwin(共有500多兆)全部下載成功。期間經歷的種種甘苦,至今回味無窮。爲了能讓大家也能分享我的經驗,避免走類似的彎路,現在我將自己總結出的Cygwin下載安裝心得寫出來,供感興趣的人士參考,也是給自己做個紀念。
 
1.  下載、運行安裝嚮導文件
    一開始的下載方法,瞭解Cygwin的人都知道:就是到 : http://www.cygwin.com 中先當個安裝嚮導文件setup.exe,這個是Cygwin的官方下載安裝嚮導文件,而且也只能通過它才能正確下載最新的Cygwin版本(爲何?稍後有說明)。
setup.exe下載完畢,雙擊運行,程序安裝嚮導界面如下圖所示:

點擊“下一步” 繼續,準備選擇Cygwin的安裝方式。

2.  選擇安裝方式

如上圖所示,一共有三種安裝方式:
(1)Install from Internet:直接從Internet上下載並立即安裝(安裝完成後,下載好的安裝文件並不會被刪除,而是仍然被保留,以便下次再安裝)。
(2)Download Without Installing:只是將安裝文件下載到本地,但暫時不安裝。
(3)Install from Local Directory:不下載安裝文件,直接從本地某個含有安裝文件的目錄進行安裝。
強烈建議選擇第(2)項,以便於能夠手工指定安裝路徑。然後再點擊”下一步“。

3.  設置安裝文件的本地存儲路徑

    由於我們選擇的是直接下載的安裝方式,所以必需指定好一個本地下載文件存儲目錄。安裝目錄所在的驅動器剩餘空間必須足夠(若要完全下載,至少需要600M以上的空間)。設置好後,點擊“下一步”。


4.  選擇連接方式


    如上圖所示,共有三種連接方式選擇:
(1)Direct Connection:直接連接。
(2)Use IE5 Settings:使用IE的連接參數設置進行連接。
(3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服務器進行連接(需要輸入服務器地址和端口號)。
    用戶可根據自己的網絡連接的實情情況進行選擇,一般正常情況下,均選擇第一種,也就是直接連接方式。然後再點擊“下一步”。


5.  選擇下載站點

    經過一番搜索,安裝嚮導爲我們列出了衆多可用的下載鏡像站點以供選擇,有HTTP的也有FTP的。說實話,這些站點我幾乎都試過了一遍,真正能用的能給我留下深刻印象的寥寥無幾。這裏我只推薦一個站點:http://mirrors.kernel.org,又快又穩定。用戶也可以自由決定倒底用哪個站點進行下載。另外,幾個後輟爲“.jp”的站點也還過的去,但不推薦。爲啥?因爲那是小日本的站點。
    言歸正傳,選擇好了沒? 好, 點擊“下一步”,嚮導會顯示下圖所示的信息:

    注意!這並不是正式的下載,而只是安裝嚮導從下載鏡像站點上獲取壓縮過的安裝列表文件。這個安裝列表文件是Cygwin統一指定的,並隨着新版本的發佈而更新。安裝嚮導就是通過它來得知究竟可以下載什麼不能下載什麼。並且該下載列表文件中還有包含有每個下載文件的MD5驗證碼,非常重要。


6.   選擇所要下載/安裝的安裝包內容

    安裝列表文件下載完畢,嚮導會顯示列表中的內容,供用戶自由選擇倒底需要下載哪些安裝包。如何選擇呢?只需用鼠標點擊每個安裝包名後面那個循環箭頭圖標即可:圖標後面的文字是表示究竟對該安裝包採取何種下載/安裝方式,並隨着點擊而不斷變化,共有這麼幾類:
(1)Default:這是默認選擇,表示只下載/安裝該包的缺省安裝項(可點擊包左邊的+號展開,看看缺省安裝究竟是些什麼內容)。
(2)Install:表示要下載/安裝該包的全部內容。所要求的空間也最大。
(3)Reinstall:表示重新下載/安裝該包的內容(以上一次正常下載/安裝時所選擇的內容爲準)。這個選項非常有用,稍後在下篇中會有說明。
(4)Uninstall:這個就不用解釋了吧。
    用戶可根據自己的實際需要,來準定究竟下載/安裝哪些內容。推薦選擇“Install”方式,一步到位,免得日後被各種這樣那樣的問題所困擾。
    至於窗口頂部那些“Keep”、“Prev”、“Curr”、“Exp”等等選項,只是用來改變當前樹結構的顯示方式的,對下載/安裝沒有什麼影響。用戶可以用默認的“Exp”。然後點擊“下一步”,就要開始正式進行下載啦。


7. 下載

上圖所顯示的,就是下載進度窗口。可以看到當前下載的文件名稱、文件大小、下載進度、總體下載進度等等關鍵信息。若當時選擇的是Install方式以便下載全部文件,則下載時間會比較長,這時用戶大可睡個覺或者乾點其他事情。慢慢等吧。

    如果用戶的運氣足夠好,也許能夠一次性的下載成功。若真能這樣,恭喜恭喜!但如果你和我一樣不幸,比如突然彈出下面這樣一個窗口:
                                             
    或者,有更倒黴的,像下面這樣:

一個文件已經下載了98%,整個進度已進行了16%,嚮導卻像死掉了一樣,一動不動了。更有甚者,有一次我總體進度已經到了99%了,結果就僵在那裏了。那怕你等上個一天一夜,嚮導仍舊是一動不動(偶就曾這麼傻傻的等過,呵呵)。
    我想這時候的你一定急的直跳:怎麼了?怎麼回事?怎麼辦?難道要我全部重新來一遍?但若重新來一遍,就一定能保證能成功嗎?。。。。。

    不必擔心,有了本人的無數次下載嘗試失敗做爲鋪路石,你只需看本文的下篇:Cygwin完全下載指南(下)-中斷下載續傳篇,就能找到答案了。

    上篇我們已經遇到個難題,就是Cygwin還沒全部下載完全,嚮導程序就自己罷工不幹了。怎麼辦? 繼續等待?重新再來一遍?換個下載鏡像站點?。。。都不是好辦法,不保險啊。最好的辦法,就是能讓嚮導程序在上次異常中止的地方重新開始下載,繼續下載。也就是類似於FTP的斷點續傳功能。
    Cygwin的安裝嚮導程序能夠實現該功能嗎?能!而且乾的還挺漂亮,只不過。。。相應的設置實在是太古怪了,簡直有誤人子弟之嫌!我在嘗試的時候,有N 回都已經幾乎摸到門把手了,但就是因爲心想:怎麼可能會是這種配置呢?決對不行的!。。。。結果,像瞎子一樣繼續在黑暗中摸索了很久,才找到了出口。其中得出的教訓遠比得到的經驗深刻~~~~閒言少敘,言歸正傳。

     一但用戶在下載過程中碰到了這種情況,不能浪費時間繼續等待,因爲那時安裝嚮導實際上已經被中止了和站點的連接,只是它仍在那裏不停的循環,不停的徒勞的嘗試而已。我們唯一要做的也是唯一能做的,就是點擊“取消”按鈕,關閉該向導!不要心疼已經下載的那部分安裝文件,不用擔心,已經下載完畢的文件不會消失,而且還仍將有用。

     關閉嚮導程序後,再重新運行它(一定要用你原先用的那個,而不能重新再當一個), 一路“下一步”下去(詳細步驟可參閱上篇的內容,但要注意的是,進行本地下載存儲路徑設置時,必須和原先下載時的設置保持一致!),直到出現下圖所示的站點選擇窗口:

這時候,千萬千萬別去選擇其他站點!對,仍舊選擇你第一次下載時選擇的那個!而且,嚮導程序也會根據你的下載日誌,自動獲得並定位到該鏡像站點上。所以,這時你唯一要做的,就是點擊“下一步”。

    熟悉的安裝包下載選擇界面又出現了,如下圖所示。

這個時候,要進行的設置就非常關鍵了:把ALL後面的Install改爲Reinstall!哈哈,是不是有點什麼想法了?對!Reinstall方式在安裝時是表示重新安裝,但在下載的時候表示的就是繼續下載!這時我就不能不罵Cygwin安裝程序的製作者了:你丫的程序界面怎麼不設計的友好點?既然我前面選擇是“Download Without Installing”,那你好歹在這項設置裏面,把Install/Reinstall改換成Download/Continue Download纔是啊。
好了不說了,都“Reinstall”了沒?好,點擊“下一步”。

    嚮導程序現在已經知道你要繼續上次的一載/續傳了,它就會根據已經生成好的下載日誌文件,對現有已經下載好的文件逐個做一把MD5校驗碼的Checking(如下圖所示),確定已下載的部分沒有任何問題。

不用點“下一步",嚮導程序會自動切換到下載界面中。


    看看下圖,看到了嗎? 這一次的下載可不是從a字頭的文件開始,而是直接從g字頭的文件開始,哈哈!
恭喜,你可以長舒一口氣了:原來如此!

需要說明的是,這時候總的下載進度稍稍有不同:不再是整個下載的進度了,而是你剩餘的需要下載的文件的進度。所以,當你看到一開始仍是0%時,大可不必擔心。你原先下載的文件都在。

    如果在續傳時,安裝嚮導程序又罷工了,只需將以上步驟重新來一遍即可,這種斷點續傳方式雖然土了點、怪異了點,可的確能保證你的下載能持續下去,直到全部 500多兆的Cygwin安裝文件下載完成。至此,本下載指南算是完成任務了。至於如何安裝,我這裏就不湊熱鬧了,因爲網上相關的文章多的是,隨便搜一下就有一大堆。大家自己看吧,安裝其實蠻簡單的。

    這次Cygwin下載磨難記,我更加驗證了我自己的一寶貴信條:只要有一線希望,就絕不放棄!無論如何都不要放棄!你也許會說,傻B了吧,爲何不直接下載 GCC包或者是MingW呢,一樣可以讓Eclipse支持C++開發啊。可是我想要下載Cygwin是有原因的:因爲Cygwin是Win平臺下的UNIX模擬環境,我們公司現在的服務器端就建立在HP-UX平臺之上,通過Cygwin,我可以直接在現有環境境中初步學習UNIX相關知識,而不用對自己現在的電腦大動干戈。一箭雙鵰,何樂不爲?

========================
    順便提醒一下:

    (1)在用戶指定的本地存儲路徑內,安裝嚮導程序會生成類似這樣的一個目錄:http%3a%2f%2fmirrors.kernel.org%2fsources.redhat.com%2fcygwin,這就是你下載文件的真正所在目錄。還會生成兩個日誌文件:setup.log和setup.log.full, 用戶感興趣的活,可以打開來看看,對了解Cygwin的下載機制有不少幫助。

    (2)  如果用戶線路不是很好的話,可選擇晚上11:00以後至早上8:00點這一段時間,進行Cygwin的下載,那時候人少,連接比較穩定,速度也有保證:我在下載時,曾達到了180KB/s的高速,這對於連接一個國外下載站點來說,已經是相當快的了。



安裝Cygwin

    還是依然點擊setup.exe這個程序,不過這次我們選擇的是:"Install From Local Directory",如圖:
 
接着選擇安裝的目錄,我這裏是"D:/ProgramFiles/Cygwin",如圖所示:
 
再接下來呢,選擇的就是你下載回來的Cygwin包的路徑了,而我這裏路徑是"D:/Tools/cygwin",如圖所示:
 
可能有朋友無法確定自己的安裝路徑,其實很簡單,本地安裝包路徑就是setup.ini這個文件所在的文件夾。
   
    緊接着的安裝組件還是和之前一樣,全部選擇爲install。點選下一步之後,就等着漫長的安裝過程的結束吧,如下圖所示:
 
5. 設置環境變量

    安裝完畢之後,爲了能夠方便編譯NDK,最好是設置相應的環境變量。打開cygwin的安裝目錄下的home文件夾,然後進入到相應的用戶名中,如果你發現該用戶名下有.bash_profile文件,那麼接下來就簡單多了,直接用記事本打開該文件,然後在文件末尾添加如下文字:
    #創建NDK的路徑,在windows中我的路徑爲:D:/ProgramFiles/Android/NDK
   NDK_ROOT=/cygdrive/D/ProgramFiles/Android/NDK
   #添加到PATH環境變量中
   export NDK_ROOT
   
    保存之後,打開cygwin,在命令行輸入:cd $NDK_ROOT。這裏注意,不像windows下的CMD,這裏一定是區分大小寫的。如果不出意外,就會進入到我們NDK的安裝目錄了。
   
    如果相應的用戶名文件夾中沒有改文件,可能問題就沒那麼簡單了。如果你在該用戶名下建立一個.bash_profile ,並添加了相應的文字,然後如上面所說一切正常的話,那麼恭喜你!但事實上,往往不是那麼順利。很可能你會發現,即使我們在用戶名下建立了該文件,但似乎環境變量根本沒有成功設置。這個很可能是用戶名所在的路徑設置不對,要檢驗路徑,直接在cygwin輸入pwd即可。
   
    比如,我安裝完畢之後,輸入pwd,畫面顯示:
 
這意味着,如果我將.bash_profile放到D:/ProgramFiles/Cygwin/home/Administrator 是沒有任何作用的,而應該放到D:/WorkPlace !
   
    那麼,我們有沒有辦法更改這個目錄呢?答案當然是可以,只要修改相應的環境變量即可。在"我的電腦"點擊右鍵,然後按如下路徑進行選擇:屬性 -> 高級 -> 環境變量。在上面或下面的框中,找到HOME這個環境變量,更改爲相應的數值即可。更改之後,重啓電腦,將.bash_profile拷貝到HOME變量指向的路徑,啓動cygwin,那麼就可以生效了。這裏需要注意,一定要重啓電腦,否則這HOME變量之前的數值可能還會影響到cygwin。
   
    更改HOME變量數值之後,輸入pwd,很明顯看出,路徑已經改變,NDK_ROOT變量也起作用了,如圖: 
6. 編譯程序

    接下來,我們就來編譯一個程序試試。

    首先,在cygwin命令行界面進入到D:/ProgramFiles/Android/NDK/samples/hello-jni路徑。如果對命令行不熟悉的朋友,可以輸入如下命令:cd /cygdrive/D/ProgramFiles/Android/NDK/samples/hello-jni 
   
    然後輸入"$NDK_ROOT/ndk-build"進行編譯。$NDK_ROOT是之前在.bash_profile設置的環境路徑,而ndk-build是調用NDK的編譯工具。如果不出問題,它會生成一個libs目錄,並且編譯生成的.so文件也會悉數在此,如下圖所示:
 
啓動配置好的android的java開發環境,比如說Eclipse + CDT,然後創建一個Android項目,選擇Create project form existring source location =D:/ProgramFiles/Android/NDK/samples/hello-jni,確認後即可開始編譯並生成apk文件,然後運行該程序即可。關於如何搭建Eclipse + CDT編譯環境來編譯android程序,我們下一篇文章再詳解。


發佈了6 篇原創文章 · 獲贊 28 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章