免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Cygwin詳解

Cygwin詳解

版本:v1.0

Crifan Li

摘要

本文主要介紹了什么是Cygwin,如何安裝Cygwin,使用Cygwin時的一些常見問題總結,總結Cygwin的使用技巧和心得,其他和Cygwin相關的東西

本文提供多種格式供:

HTML版本的在線地址為:

http://www.crifan.com/files/doc/docbook/cygwin_intro/release/html/cygwin_intro.html

有任何意見,建議,提交bug等,都歡迎去討論組發(fā)帖討論:

http://www.crifan.com/bbs/categories/cygwin_intro/

2013-09-04

修訂歷史
修訂 1.02013-09-04crl
  1. 將原先部分內容從軟件開發(fā)基礎知識(soft_dev_basic)中整理過來
  2. 添加后來對于Cygwin的一些折騰,主要是如何重新安裝Cygwin的某個軟件包,如何選擇合適的安裝源
  3. 整理一些和Cygwin相關的東西,比如crosstool-ng等

版權 ? 2013 Crifan, http://crifan.com


目錄

前言
1. 本文目的
2. 待完成
1. Cygwin簡介
1.1. 什么是Cygwin
1.2. 什么會出現(xiàn)Cygwin
1.3. 什么人需要用到Cygwin
1.3.1. 舉例說明Cygwin的各種用途
1.3.1.1. 在Cygwin下建立Docbook開發(fā)環(huán)境
1.4. Cygwin的版本
2. 下載和安裝Cygwin
2.1. Cygwin的安裝方式
2.2. Cygwin在線安裝指南
2.2.1. Cygwin的setup.exe的安裝首界面
2.2.2. 選擇Cygwin的安裝方式
2.2.3. 選擇Cygwin的安裝根目錄
2.2.4. 選擇Cygwin的本地安裝包下載路徑
2.2.5. 選擇網絡連接方式
2.2.6. 選擇(所要連接的)服務器(去用于后續(xù)下載文件)
2.2.7. 選擇需要安裝的模塊(安裝包)
2.2.7.1. Cygwin中模塊的各種分類
2.2.7.2. Cygwin中如何查看某分類下,默認已經安裝了哪些模塊
2.2.7.3. cygwin中如何取消/選擇安裝單個模塊
2.2.7.4. Cygwin中如何取消/選擇/重新/卸載安裝某分類下的所有模塊
2.2.7.5. Cygwin中如何知道某個模塊是否已經選擇安裝了
2.2.7.6. 關于安裝Cygwin模塊方面的最簡單,最核心的提示
2.2.8. 安裝所選模塊直至完成
3. Cygwin中各個模塊詳解
3.1. iconv
3.2. libxml2
3.3. libxslt
3.4. zlib
3.5. openSSH
4. Cygwin使用心得和技巧總結
4.1. 和Cygwin自身相關的一些工具
4.1.1. cygcheck
4.1.2. cygpath
4.2. Cygwin中使用注意事項
4.2.1. Cygwin的環(huán)境變量等路徑中可能包含空格,括號等特殊字符而導致出錯
4.3. Cygwin使用技巧總結
4.3.1. Windows下,添加右鍵打開Cygwin
4.3.2. 修改Cygwin的默認啟動路徑
4.3.3. 切換當前路徑到別的磁盤,比如C盤,D盤等
5. Cygwin中常見錯誤及解決辦法
5.1. Cygwin中常見錯誤及解決辦法
5.1.1. Cygwin下的文件可以編輯但是無法保存
6. 與Cygwin相關的東西
6.1. 在Cygwin下搭建Docbook開發(fā)環(huán)境
6.2. 在Cygwin下編譯crosstool-ng
6.3. 在Cygwin下編譯Buildroot
參考書目

前言

1. 本文目的

本文目的在于,詳細解釋什么是Cygwin,如何使用Cygwin

以實現(xiàn),對于Cygwin不了解的人,看了后,可以達到:

知道什么是Cygwin

在具體如何安裝和使用時,都有合適的參考資料

2. 待完成

第 1 章 Cygwin簡介

相關舊帖:

1.1. 什么是Cygwin

Cygwin是一個集合,這個集合包含了一堆的工具,目的在于,在windows平臺上,提供一個Linux的環(huán)境。

作為在Windows下面的軟件,Cygwin中最核心的,是個dll庫,叫做cygwin1.dll,

其提供了底層的Linux API的所有功能,供Cygwin下面的各種工具,模塊等調用,以此來實現(xiàn)在Windows下模擬Linux環(huán)境。

從cygwin的具體表現(xiàn)和文件組成上來說,就是:核心的Cygwin DLL文件 + 各種Linux下面的模塊(工具/軟件/庫)

1.2. 什么會出現(xiàn)Cygwin

計算機的世界,在操作系統(tǒng)方面,目前用的最廣泛的,有三類:開源免費的Linux,微軟的Windows,蘋果的Mac。

隨著計算機的發(fā)展,很多時候,尤其是做軟件開發(fā)方面,常常會遇到在某種平臺上,希望利用到另外一種平臺上的工具,或環(huán)境,其中就包括在Windows下面,利用Linux中的環(huán)境和工具。

對于此種需求,最終才出現(xiàn)了各種方案,Cygwin就是其中的一種,提供了一個Windows下面使用Linux環(huán)境的平臺。

有人會問了,不是很多功能,windows下面也有類似的軟件可以實現(xiàn)嗎?為何非要(在Windows環(huán)境下)去用Linux的環(huán)境(中的軟件)呢?

那是因為,等你對Linux有更多了解的時候,就會發(fā)現(xiàn),Linux下面的很多很多的更強大的功能,是windows下面沒有對應的功能,或者即使有,也不好用。

比如Linux世界中,最常用的項目編譯過程管理的工具makefile,Windows下面的就沒有足夠好用的類似的工具

而且一般與Makefile搭配使用的其他很多別的工具,使得組合起來使用,可以實現(xiàn)非常強大且復雜的一些功能。

隨著軟件開發(fā)的深入,至少我個人感覺,才能越加發(fā)現(xiàn)Linux的各種強大和好處。

所以才會遇到,不少時候,需要在Windows下去模擬Linux環(huán)境,以便去使用Linux中的各種強大功能的軟件,工具的

關于常見的系統(tǒng)Windows,Linux,Mac

對于常見的系統(tǒng),Windows,Linux,Mac不熟悉的人,

可以去參考:

【教程】軟件開發(fā)基礎知識之操作系統(tǒng)類型:Windows/Linux/Mac,32位/64位

1.3. 什么人需要用到Cygwin

不論是做偏底層的嵌入式開發(fā),還是做上層軟件的開發(fā),都可能會用到Cygwin。

簡單說就是:

想要在Windows平臺上,折騰Linux系統(tǒng)中的東西

然后才用到Cygwin去模擬Linux環(huán)境,去在Linux環(huán)境下實現(xiàn)各種復雜的功能和目標

此處,隨便舉一些例子:

1.3.1. 舉例說明Cygwin的各種用途

1.3.1.1. 在Cygwin下建立Docbook開發(fā)環(huán)境

就像我之前寫的教程中:

純Windows環(huán)境下的Docbook開發(fā)環(huán)境的搭建

詳細介紹的一樣,對于Docbook環(huán)境的搭建,其實是可以使用Windows下的二進制的xsltproc+fop來實現(xiàn)的

但是,其總體上能夠實現(xiàn)的功能相對較弱。

而我此處,有個相對比較復雜的需求:

需要管理20多個Docbook的book

如果編譯每一個book,都需要手動去輸入對應的編譯命令的話,相關的工作量極大且極其繁瑣,且容易出錯,直接就把人累死了

而通過Cygwin中的makefile來實現(xiàn),就相對輕松多了。

所以后來就去花點時間,去寫了對應的makefile

以實現(xiàn),對于每個book下的src文件夾下,去:

make htmlmake pdfmake htmlsmake rtfmake chmmake txt

就可以對于每個book,生成其對應的不同格式的輸出文件。

而在windows下面,類似的功能,我最多只能用batch批處理文件去實現(xiàn),

但是卻缺少了Makefile中的依賴特性,其可以自動檢測所依賴的文件是否已更新,決定是否重新編譯。

即,對于多個文件,尤其是中型大型等項目的管理方面,windows的batch,比linux中的makefile差的太遠了。

另外,由于要生成chm等格式的文件,我此處還需要一些其他的輔助工具

比如用于轉換編碼的iconv,而這類好用易用的各種工具,在Linux下面,都是必備的,無需額外安裝和太操心

但是如果想要在windows下使用,還要去一個個找到對應的windows下面的版本,或者找到相應的源碼,自己去編譯一個版本。

如此,經常需要利用到Linux下面的各種強大好用的工具,但是windows下面常常沒有或者有類似的但不好用或功能很弱,

因此,才需要用到Cygwin去模擬Linux,

然后在Linux下面,利用已有的各種工具,實現(xiàn)各種復雜的需求的。

關于實現(xiàn)細節(jié),可參考:

Windows環(huán)境下的,基于Cygwin的Docbook開發(fā)環(huán)境的搭建

1.4. Cygwin的版本

cygwin的版本,涉及到兩個東西。

一個是cygwin的核心==Cygwin DLL文件==cygwin1.dll,其最新版本,可以從cygwin主頁上看到,此刻,2012-06-20,是1.7.15-1。

另外一個就是在線安裝文件setup.exe的版本,其在安裝過程中可以看到,比如圖 2.1 “Cygwin Net Release Setup Program”中的是2.774。

所以,如果你看到有人寫的cygwin的版本是2.x的,那都是指的是setup.exe安裝包的版本。如果寫的是1.x.x的,那都是指的是核心的dll文件的版本。

第 2 章 下載和安裝Cygwin

目錄

2.1. Cygwin的安裝方式
2.2. Cygwin在線安裝指南
2.2.1. Cygwin的setup.exe的安裝首界面
2.2.2. 選擇Cygwin的安裝方式
2.2.3. 選擇Cygwin的安裝根目錄
2.2.4. 選擇Cygwin的本地安裝包下載路徑
2.2.5. 選擇網絡連接方式
2.2.6. 選擇(所要連接的)服務器(去用于后續(xù)下載文件)
2.2.7. 選擇需要安裝的模塊(安裝包)
2.2.7.1. Cygwin中模塊的各種分類
2.2.7.2. Cygwin中如何查看某分類下,默認已經安裝了哪些模塊
2.2.7.3. cygwin中如何取消/選擇安裝單個模塊
2.2.7.4. Cygwin中如何取消/選擇/重新/卸載安裝某分類下的所有模塊
2.2.7.5. Cygwin中如何知道某個模塊是否已經選擇安裝了
2.2.7.6. 關于安裝Cygwin模塊方面的最簡單,最核心的提示
2.2.8. 安裝所選模塊直至完成

2.1. Cygwin的安裝方式

Cygwin的安裝方式,總的來說,你一般所能見到的,有兩種:

  1. 利用官網的setup.exe去下載安裝

    Cygwin的官網中,有個安裝文件setup.exe,其固定的不變的下載的地址是Cygwin的setup.exe。

    此setup.exe本身很小,比如此刻,2012-06-20,下載下來的setup.exe,就只有689KB:

    而這些在線下載或本地已有的文件,則是非常大,一般來說,都是多達1,2G,甚至3,4G,而安裝完畢之后的cygwin則往往要占用5,6G甚至更多的硬盤空間。

    當然,如果你安裝時候所選擇要安裝的模塊很少的話,占用硬盤空間則會相應變小一些,但估計也還是以GB為單位。

    關于具體的安裝過程,請參考第 2.2 節(jié) “Cygwin在線安裝指南”

  2. 利用本地已有的cygwin的ISO去本地安裝

    你可能也許聽說,有個Cygwin的ISO,也是用于安裝Cygwin的。

    而ISO中所包含的文件,就是一個setup.exe和下載下來的各個模塊的安裝包。

    這些文件,其實就是上述通過setup.exe(在安裝過程中)下載下來(并安裝)的而已。

    所以,并沒有比setup.exe有啥特殊的地方。

    不過,很明顯,其有個最大的好處,那就是不用非要去通過setup.exe去在線下載和安裝了。

    因為,通過setup.exe去鏈接某個服務器,其速度往往不是那么快。

    即便是目前對國內來說最快的163的服務器,速度已經很快了,但是還是沒有(比如用迅雷)單獨去下載ISO速度來得快。

    所以,如果可以的話,還是ISO下載,來得快,然后本地安裝,就避免了在線連接服務器去下載太慢的問題。

    關于目前可用的ISO鏡像的下載地址,請參考目前已知的可用的Cygwin的ISO下載地址

目前已知的可用的Cygwin的ISO下載地址

關于可用的Cygwin的ISO,之前就整理過一些帖子:

【網絡資源下載】Cygwin ISO Download

【整理】cygwin 本地 離線 精簡版 下載

此處簡要整理如下:

  1. 之前的伯克利的那個地址:700MB Cygwin ISO image ,已經不可用了。因為國內的人去下載的太多了,導致人家限制了ip范圍,只允許其校內的ip,至少不允許國內的ip去下載了。

  2. 我整理的那個iso:《Cygwin完全版v2.738_20111105》(Cygwin_fullVersion_v2.738_20111105)2.738[光盤鏡像],目前發(fā)現(xiàn)有點問題,暫時也不推薦下載了。等有空再去弄個可用的ISO。

  3. 目前發(fā)現(xiàn)的,關于精簡版本的cygwin iso,倒有幾個,推薦一下:

2.2. Cygwin在線安裝指南

下面詳細解釋Cygwin的setup.exe的安裝過程:

2.2.1. Cygwin的setup.exe的安裝首界面

雙擊setup.exe,則會出現(xiàn)安裝界面:

圖 2.1. Cygwin Net Release Setup Program


可以看到,其中對于setup.exe,即此安裝包,也是有對應的版本的,此處的是2.774。

2.2.2. 選擇Cygwin的安裝方式

點擊“下一步”,出現(xiàn)“Choose installation type”界面:

其中有三個選項:

  • Install from internet(downloaded files will be kept for feature reuse)

    從網上下載(下載下來的文件,也可以將來再用)

    其意思是,從網上下載的文件,存在本地硬盤后,以后萬一遇到諸如某個模塊被破壞了,不能用了,則可以再通過此setup.exe去重新安裝一下,但是選擇的是下面要說的第三項,即選擇從本地某個文件夾安裝,即此處之前下載好了的,效果相當于,windows中安裝程序的修復功能。

    關于如何從網上下載安裝,接下來會詳細解釋。

  • Download Without Installing

    只下載不安裝

    其用意,暫時沒有完全搞懂。大概是為了先完全下載下來,然后方便選擇性的安裝自己需要的模塊吧。

  • Install from Local Directory

    為選擇從本地安裝

    上面已經提到了,其前提是,之前已經下載過了對應的所需的各個安裝模塊了,此時可以選擇此項,去全新安裝或者修復式安裝某個模塊。

2.2.3. 選擇Cygwin的安裝根目錄

點擊“下一步”后,出現(xiàn)“Select Root Install Directory”的界面:

其中Root Directory,指的是你所要將Cygwin安裝到哪個目錄。

默認為C:\cygwin,此處可以改為自己所要的路徑,也可以用默認值,都可以。

我此處改為我所要的路徑:E:\DevTools\Cygwin\cygwin_install

然后對于Install for,有兩種選擇:

  • All User(RECOMMENDED)

    為windows當前所有用戶都有效。

  • Just Me

    只對當前的windows用戶有效。

此處選擇默認的,對所有用戶都有效,即可。

2.2.4. 選擇Cygwin的本地安裝包下載路徑

點擊“下一步”后,進入“Select Local Package Directory”的界面:

其中Local Package Directory部分,是由于前面選擇的是從網上下載并安裝,所以此處讓你選擇對于下載下來的各個模塊的安裝文件,都放在哪里,此處,根據自己需要,設置一個路徑即可。

我此處設置為E:\download\cygwin\cygwin_down

設置的路徑(文件夾)最好是已經創(chuàng)建好的

不過要注意一點的是,確保你的設置的路徑,是真實存在的,否則就會出現(xiàn)這樣的錯誤提示了:

當然,此時也是可以點擊”是(Y)“去讓其幫你創(chuàng)建對應的路徑的。

2.2.5. 選擇網絡連接方式

然后就進入”Select Your Internet Connection“的界面了:

此時對于網絡連接方式,有幾種選擇:

  • Direct Connection

    一般多數(shù)用戶都是這種直接連接的網絡,所以都是直接使用默認設置即可。

  • Use Internet Explorer Proxy Settings

    使用IE代理設置,如果你本身上網是通過代理上的,且IE中已經設置好了代理,那么就可以用此種設置了。

  • Use HTTP/FTP Proxy

    使用HTTP或FTP類型的代理。同理,如果有需要,自己選擇此項后,設置對應的代理地址和端口,即可。

2.2.6. 選擇(所要連接的)服務器(去用于后續(xù)下載文件)

點擊”下一步“后,其會自動去下載一個服務器的列表,然后跳轉到”Choose A Download Site“的界面:

圖 2.2. Choose A Download Site


此處需要選擇一個服務器,之后就是從該服務器下載對應的安裝所需的模塊文件了。

因此,此處如果選擇的服務器不合適的話,盡管你的網絡本身速度很快,但是此處下載速度很慢。

所以,此處需要選擇一個速度比較快的服務器。

對于國內來說,連接很多國外的服務器,速度一般都很慢。

不過,目前已經的,口碑較好的,速度較快的服務器,是近幾年剛出現(xiàn)的163的服務器。

所以,此處對于多數(shù)人,最好的選擇就是選擇163的服務器。

此處,我這里,由圖可見,已經默認選擇好了163的服務器,所以不需要額外設置了。

如果你的選擇其他的服務器,而且服務器列表中也找不到163的話,那么可以自己手動添加:

在Use URL處,輸入:

http://mirrors.163.com/cygwin/
關于163鏡像服務器

163是個好公司,因為剛看到http://mirrors.163.com/.help/中的介紹,得知其前身就是cn99鏡像。

之前玩過Ubuntu的人,估計多數(shù)都知道cn99這個鏡像,因為對于國內來說,apt的源的地址中,屬其速度最快。

而且,現(xiàn)又發(fā)現(xiàn),163的鏡像,除了提供cygwin,其還提供了其他很多資源的鏡像,都可以在http://mirrors.163.com/中找到。

包括很多常見的,比如mandriva,openSUSE,ubuntu等等。

為何手動添加URL時,輸入的是而不是

首先要說的是,直接輸入在圖 2.2 “Choose A Download Site”中所看的的地址http://mirrors.163.com/,是無法正常連接163服務器去下載cygwin的。

這也是我之前在【記錄】Cygwin下載過程記錄中所遇到并解決了的問題。

而具體的原因是為何,我也是剛剛才注意到的:

因為cygwin去安裝的話,不論是在線安裝還是本地安裝,都會需要一個對應的配置文件:setup.ini,而你打開http://mirrors.163.com/中,是找不到對應的setup.ini的,但是在http://mirrors.163.com/cygwin/中是可以找到對應的setup.ini的。

因此,你給cygwin的setup.exe指定了http://mirrors.163.com/后,其從此URL中,找不到對應的setup.ini,所以無法繼續(xù)安裝cygwin。

所以URL中需要輸入http://mirrors.163.com/cygwin/。

2.2.7. 選擇需要安裝的模塊(安裝包)

點擊“下一步”后,其會解析一下,然后進入”Select Package“的界面:

此界面,才是整個Cygwin安裝過程中的最重要,最需要詳細講解的部分。

2.2.7.1. Cygwin中模塊的各種分類

先來說說,那一堆的列表。

可以看到,其有Accesibility,Base,Devel,Editors,Math等很多的部分。

這些,是總體的分類,對于Cygwin中所包含的N個模塊的分門別類。

此處,對于安裝Cygwin來說,就是安裝各種各樣的模塊而已。

具體安裝什么模塊,則是根據你自己的需要,去選擇不同的模塊。

而對于大多數(shù)人,尤其是不熟悉的人,其實,最核心的,要記住的一點,那就是,記住一定要安裝Devel這個部分的模塊,其中包含了各種開發(fā)所用到的工具或模塊。

而對于其他部分的設置,如果不熟悉,那么可以直接使用默認配置即可。

2.2.7.2. Cygwin中如何查看某分類下,默認已經安裝了哪些模塊

下面再來解釋一下,如何選擇或者取消對應的模塊。

可以看到,其默認的各個分類后面的是Default字樣,其意思很明顯,就是cygwin幫我們設置好的,默認的選擇安裝了一些模塊,其具體包含哪些模塊,可以通過點擊對應的分類前面的加號以展開。

以Devel為例:

點擊加號:

然后就可以看到,cygwin已經默認幫忙選擇了哪些安裝哪些模塊:

可以看到,有很多n/a的標示,其表示Not Avalibale不可用,此處即為不安裝的意思,對應的模塊的前面也寫的是Skip,同樣是跳過安裝此模塊的意思。

而對應方括號中間打叉,表示的是選擇安裝該模塊,上圖中即為選擇安裝gettext這個模塊。

2.2.7.3. cygwin中如何取消/選擇安裝單個模塊

而想要安裝某單個模塊,比如gdb模塊的話,那么就是對著那個skip前面的圖標,點擊一下,然后就可以看到gdb模塊被選中了,表示安裝此模塊:

2.2.7.4. Cygwin中如何取消/選擇/重新/卸載安裝某分類下的所有模塊

很明顯,如果想要對幾十個,幾百個模塊都想要安裝的話,如果都要一個個點擊,那豈不是累死了。

對此,cygwin早就想好了,給我們提供了更方便的設置,那就是,對于此Devel分類下面的所有的模塊,如果你想要都安裝,那么可以點擊Devel后面的那個Default:

那么Default就會變成Install,同時,其下所有的模塊,也都變成選擇安裝了:

對應的,再次點擊Install,則會變成Reinstall,對應的Devel下面的各個模塊,也都變成相應的skip了:

此處對于reinstall之所以變成skip,那是因為之前就沒有安裝過,所以此處對于之前沒有安裝過的模塊,就是變成skip,即也不安裝了。而如果你是第二次運行此cygwin安裝程序,那么對于那些之前安裝過的,則會變成對應的reinstall的。

同理,點擊Reinstall,則又會變成Uninstall:

含義很明顯,卸載對應的模塊的意思。

如此,對于某個分類,點擊對應的后面的安裝選項的話,會在:Default,Install,Reinstall,Uninstall這幾個選項之間來回切換。

2.2.7.5. Cygwin中如何知道某個模塊是否已經選擇安裝了

而對于想要知道某個庫,或者說模塊,程序等,是否已經選擇安裝了,

多數(shù)人都會被cygwin里面太多的模塊而搞暈掉,所以其提供了一個Search的功能。

比如,我想要去確定(用于搭建Docbook環(huán)境所必須的其中)一個叫做libxml2的模塊,

那么就可以去search框中輸入libxml2,則其會自動把與此libxml2相關的模塊,都列出來:

不過由于各個子分類都是加號,沒有展開的,所以點擊加號,全部展開:

可以看到此處已經安裝了Devel中的libxml2-devel這個模塊了,其已經基本滿足開發(fā)需求了。

但是很多時候,我們可能對于剩下的其他的與此libxml2相關的模塊,不是很清楚其功能,不知道是否需要安裝,那么此時,其實最簡單省事的辦法就是,把相關的模塊,都點擊Skip,直到都變成Install:

如此,就不怕漏裝某個libxml2的庫,而導致以后需要回來重新安裝了。

如此,安裝自己需求,一點點去選擇自己需要的模塊,即可。

2.2.7.6. 關于安裝Cygwin模塊方面的最簡單,最核心的提示

還是那句話,對于新手,很多不清楚各個模塊的作用:

那么最簡單的做法是,全部都選上。

當然覺得全部都選上,又太浪費下載時間和安裝后的空間的話,那么最為開發(fā)用途的cygwin,則至少可以把

Base,Devel,Libs,Net,System,Utils

等這幾個最基本的分類下面的模塊都選上。

即點擊

Base,Devel,Libs,Net,System,Utils

的Default,使其都變成Install即可:

當然,如果對于這些,你還嫌棄還是太多,那么就只選擇Devel,也基本夠你日常開發(fā)所用了。

2.2.8. 安裝所選模塊直至完成

選擇好需要安裝的模塊后,就可以點擊”下一步“去安裝了。

然后后面就很簡單了,基本上都是下一步,然后cygwin就會自動去下載并安裝對應的模塊了。

這個過程所需時間,取決于你所選模塊的多少,和連接(前面所設置的163)服務器的速度快慢,決定了下載所用時間,以及最后加上安裝所有模塊的時間,總體上來說,應該都是以小時為單位,比如2,3個小時之類的時間。

最后安裝完畢,會在桌面出現(xiàn)一個cygwin的圖標,雙擊后,第一次運行,其會初始化一下,之后就是正常的使用Linux的環(huán)境了。

關于安裝到最后有時候會死掉的解決辦法

如果遇到了安裝到最后,比如95%的時候死掉的問題,可以參考:

【記錄】Cygwin下載過程記錄

離線安裝Cygwin

離線安裝Cygwin,即從本地安裝,其安裝方法,和上面的從setup.exe安裝相比,主要的不同點就是選擇從本地安裝,剩下的過程都類似,就不多解釋了。

第 3 章 Cygwin中各個模塊詳解

此處,針對Cygwin中的一些模塊,工具,庫等,做個簡單的介紹。

當然,實際上,這些東西,其實都是Linux中的常見工具,庫等,

此處,只是針對我所了解的一些,做個解釋,僅供參考:

3.1. iconv

是個針對編碼轉換的工具,其支持很多常見的編碼,包括UTF-8,GB2312等等。

比如我在生成Docbook的chm格式文件的時候,就用到將UTF-8編碼的文件,轉換為本地編碼(GB18030編碼)的格式,就是用的iconv這個工具。

詳情可參考iconv

3.2. libxml2

和xml解析相關的核心庫,可被很多其他程序,工具用到。比如docbook所用工具xsltproc。

詳情可參考libxml2

3.3. libxslt

xslt是一種語言,用來描述如何將xml轉換為別的格式的文件。此庫常被別的程序所用到,比如:docbook所用工具xsltproc。

3.4. zlib

最常用的壓縮工具之一。

3.5. openSSH

SSH是用來建立加密的安全連接的。相對于普通的非加密鏈接,提高了安全性。而此openssh是個開源免費的,用的最廣泛的一個ssh的實現(xiàn)。

第 4 章 Cygwin使用心得和技巧總結

4.1. 和Cygwin自身相關的一些工具

此處主要指的是和Cygwin本身有關的一些工具。

關于Cygwin的工具,其實cygwin官網中已有詳細介紹了:Cygwin Utilities,此處只是簡單解釋一下,以及提醒一些注意事項:

4.1.1. cygcheck

作用:用于檢測,校驗cygwin。

如果cygwin本身的運行有問題了,比如缺少了某庫,導致程序無法運行,則可以使用此工具,去檢測到底問題出在哪里。

比如:【基本解決】Cygwin中運行程序出現(xiàn)錯誤:error while loading shared libraries: ?: cannot open shared object file: No such file or directory

4.1.2. cygpath

作用:實現(xiàn)Linux/Unix和Windows之間的路徑轉換。

其中,主要包含了Windows路徑中反斜杠和Linux路徑中的斜杠之間的轉換,已經Windows下面的環(huán)境變量和Linux下面的環(huán)境變量的處理。

而環(huán)境變量中,又包含,多個值所用分隔符的不同,Windows是分號,Linux是冒號。

不過好像當Linux和Windows的環(huán)境變量混用,有時候,會出現(xiàn)一些bug,比如

【終極解決】fop錯誤:Exception in thread 'main' java.lang.NoClassDefFoundError:org/apache/xmlgraphics/image/loader/ImageContext 的終極解決辦法,即cygpath有bug,轉換路徑出錯,導致部分路徑被截斷

4.2. Cygwin中使用注意事項

Cygwin的使用過程中,也有很多注意事項,現(xiàn)總結如下;

4.2.1. Cygwin的環(huán)境變量等路徑中可能包含空格,括號等特殊字符而導致出錯

Linux的環(huán)境中,路徑中,是不允許包含空格的

Windows的環(huán)境中是運行的

所以,在使用Cygwin期間,常常會遇到:

PATH等環(huán)境變量,由于即包含了Windows中的很多路徑

又包含了Cygwin(即Linux)中的很多路徑

但是程序,腳本等處理這些路徑時,有些沒考慮到這種帶路徑的情況

而導致出現(xiàn)各種問題。

比如,我之前就遇到一個:

【已解決】Cygwin下為xscale編譯Buildroot時make出錯:/bin/sh: -c: line 0: syntax error near unexpected token `(‘

所以,以后使用時,在這方面,要小心。

以及出現(xiàn)類似問題,要想到,或許可能是Cygwin路徑中包含空格,括號等特殊字符而導致的

4.3. Cygwin使用技巧總結

下面介紹一些Cygwin中相關的小技巧:

4.3.1. Windows下,添加右鍵打開Cygwin

打開注冊表(regedit)并定位到

HKEY_CLASSES_ROOT\Directory\shell

關于注冊表regedit

不熟悉windows注冊表regedit的,請去看

Windows的注冊表編輯器: regedit

然后右擊shell->新建->項,然后名字隨便起,比如RunCygwin

在其下再新建一項,叫做command,表示要執(zhí)行的命令,command下會有一個圖標是ab字樣的鍵值,名稱是(默認),類型是REG_SZ,

雙擊其會彈出一個'修改字符串'的窗口,修改數(shù)據數(shù)值為:

D:\tmp\tmp_dev_root\cgwin\bin\bash -login -c 'cd '%1'; exec bash -rcfile ~/.bashrc'

其中

D:\tmp\tmp_dev_root\cgwin\

是我此處Cygwin安裝路徑下的bash的位置,其下會存在bash工具:bin\bash

然后就可以進入任何目錄,右鍵點擊,就會看到對應的可選項,此處是RunCygwin

點擊即可進入cygwin了:

關于更多的相關的解釋,請參考:【整理】在windows下添加右鍵使得可以運行cygwin且直接定位到當前文件夾 + 【整理】如何在Windows XP中,右鍵添加命令行cmd command,打開當前文件夾,定位到當前路徑

4.3.2. 修改Cygwin的默認啟動路徑

原先啟動Cygwin,其默認路徑是當前用戶的Home文件夾:

CLi@PC-CLI-1 ~$ pwd/home/CLi        

而Cygwin默認啟動路徑,就是由環(huán)境變量HOME的值決定的。

因此,此處就是要去改變對應的環(huán)境變量HOME的值。

此處,先去看看原先HOME的值是多少,有兩種方法:

  • 可以在cygwin下輸入env查看當前所有的環(huán)境變量:

    CLi@PC-CLI-1 ~$ envHOMEPATH=\Users\CLi...SHELL=/bin/bashTERM=xterm...CommonProgramFiles(x86)=C:\Program Files (x86)\Common FilesOS=Windows_NT...HOME=/home/CLi...

    其中就可以看到,此處的HOME值為/home/CLi

  • 直接通過echo一個環(huán)境變量,得知該環(huán)境變量的值:

    CLi@PC-CLI-1 ~$ echo $HOME/home/CLi                

而想要改變HOME的值,也有兩種方法:

  • 去windows中建立一個HOME的環(huán)境變量,將值設置為自己想要的值

    而關于如何添加Windows的環(huán)境變量,不熟悉的人,請參考

    windows中新建一個環(huán)境變量

  • 通過export去修改環(huán)境變量:

    CLi@PC-CLI-1 ~$ echo $HOME/home/CLiCLi@PC-CLI-1 ~$ export HOME=/home/CLi/developCLi@PC-CLI-1 /home/CLi$ echo $HOME/home/CLi/develop

    即可把HOME從/home/CLi改為/home/CLi/develop

    注意
    此處通過export的方式改變的值,只是當前(會話/窗口)有效,關閉了窗口后,就失效了,所以下次重啟后,還是無法達到修改的效果

4.3.3. 切換當前路徑到別的磁盤,比如C盤,D盤等

Cygwin下,從當前路徑切換到Windows中別的磁盤,比如C盤,之前的做法,是通過cygdrive:

CLi@PC-CLI-1 /cygdrive/c$ pwd/cygdrive/cCLi@PC-CLI-1 /cygdrive/c$ cd /cygdrive/dCLi@PC-CLI-1 /cygdrive/d$ pwd/cygdrive/d        

現(xiàn)在剛看到[1],才知道也可以直接通過C:的形式去切換到C盤了:

CLi@PC-CLI-1 /home/CLi$ pwd/home/CLiCLi@PC-CLI-1 /home/CLi$ cd C:CLi@PC-CLI-1 /cygdrive/c$ pwd/cygdrive/c

第 5 章 Cygwin中常見錯誤及解決辦法

5.1. Cygwin中常見錯誤及解決辦法

5.1.1. Cygwin下的文件可以編輯但是無法保存

之前在折騰:

【記錄】Cygwin下用crosstool-ng為arm制作交叉編譯器

期間,就遇到這種問題:

【已解決】Win7中用Notepad++編輯cygwin下面的文件結果保存出錯:請檢查文件是否在別的程序中打開

具體現(xiàn)象是:

Cygwin下面的文件,是可以用其他編輯工具,比如Notepad++,Sublime等去編輯的

但是,編輯之后,去保存的時候,都會出錯,都無法正常保存。

經過一番折騰,結果找到了根本原因:

Cygwin下面的有些文件,其文件的擁有者(owner),不是Win7中當前的用戶

導致有些Cygwin下面的文件,在Win7下面,會沒有修改刪除等權限。

所以,對應的解決辦法就是:

給Win7的當前用戶,增加操作這些文件的權限。

其實現(xiàn)起來也有各種辦法,相對最省事,最常用的辦法是:

Win7的資源管理器中,右鍵,cygwin中那些沒有操作權限的文件所在的文件夾

然后選擇:'管理員取得所有權'

就會調出命令行,給該文件夾下所有的文件,都加上當前用戶,即管理員,的所有權限。

然后就可以在Win7下編輯文件,保存文件了。

第 6 章 與Cygwin相關的東西

6.1. 在Cygwin下搭建Docbook開發(fā)環(huán)境

如之前教程:

Windows環(huán)境下的,基于Cygwin的Docbook開發(fā)環(huán)境的搭建

介紹的一樣,其實是在Windows下的Cygwin中,去搭建Docbook的環(huán)境,

效果會比純Windows環(huán)境下Docbook環(huán)境,更好,功能更強大,但是當然,也更加復雜。

6.2. 在Cygwin下編譯crosstool-ng

crosstool-ng支持Cygwin環(huán)境,也可以在Cygwin下編譯crosstool-ng:

支持多種主機編譯環(huán)境:各種Linux發(fā)行版,Cygwin等

6.3. 在Cygwin下編譯Buildroot

Buildroot,截止目前(2013-09-03),官網是不支持Cygwin環(huán)境的

但是,經過一番研究后發(fā)現(xiàn),現(xiàn)在最新版本的Buildroot,好像已經有人成功在Cygwin上編譯了。

所以,后來自己也就去折騰了,感興趣的可以去看看:

【記錄】在Cygwin上用Buildroot為xscale建立交叉工具鏈

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Win下Cygwin的安裝
在Windows下使用gcc
2.Cygwin安裝入門
在Windows下本地安裝Cygwin(openSSH)
Cygwin系列(七):Cygwin軟件包管理相關配置 | silaoA的博客
cygwin移植linux程序到windows及在eclipse中使用cygwin的常見問...
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服