[目錄] cygwin安裝使用總結(jié).txt (created by TxtBrowser)
content
1. 什么是Cygwin?
2. 什么不是Cygwin?
3. Cygwin的下載與安裝
4. cygwin下的一些應(yīng)用
. 4.1 默認(rèn)的應(yīng)用--也是我選擇cygwin的原因
. 4.2 可以自己安裝一些好玩的東東
. 4.3 有一些應(yīng)用需要額外的配置
. 4.3.1 ssh服務(wù)在cygwin上架設(shè)指南
5. cygwin的一些問題及解決
. 5.1 如何改變home目錄
. 5.2 cygwin顯示中文問題
. 5.3 cygwin下中文中現(xiàn)亂碼問題
figures
figure 1. patch for mplayer on cygwin
對于留戀Linux命令行的用戶, 對于那些不想在你的Windows系統(tǒng)上再安裝一個Linux, 或者
安裝虛擬機, 再在虛擬機上安裝Linux的用戶來說, Cygwin應(yīng)該是一個很好的選擇. cygwin
可以模擬Linux的工作環(huán)境, 命令, 工作方式都跟 Linux一樣.
Windows的命令行的確是不好用, cygwin除了可以執(zhí)行Linux命令外, 還可以直接調(diào)用
Windows的命令行, 不同的是界面更加友好. 如果再配合其它軟件(如console2), 基本上可
以做到類似Linux的 gnome-terminal的多tab了.
所有的試驗都是在cygwin1.5上做的, cygwin1.7盡管發(fā)布很久了, 但是個人感覺還有很多
bug, 所以我在公司里用cygwin1.5, 回到家里用cygwin1.7, 這是個人的感受, 呵呵.
1. 什么是Cygwin?
Cygwin是一個在windows平臺上運行的Linux模擬環(huán)境, 是Cygnus solutions公司開發(fā)的自
由軟件(該公司開發(fā)了很多好東西, 著名的還有eCos, 不過現(xiàn)已被Redhat收購). 它對于學(xué)
習(xí)Unix/linux操作環(huán)境, 或者從unix到windows的應(yīng)用程序移植, 或者進行某些特殊的開發(fā)
工作, 尤其是使用gnu工具集在windows上進行嵌入式系統(tǒng)開發(fā), 非常有用. [1]
Cygwin是一個Windows上的Linux模擬環(huán)境, 它包括兩個部分:
* 一個作為Linux API仿真層的DLL(Cygwin.dll), 它提供穩(wěn)定的Linux API功能.
* 提供看起來且使用起來象Linux的工具集.
2. 什么不是Cygwin?
Cygwin不是一種在Windows下運行Linux應(yīng)用程序的方式, 如果要做到這一點, 你必須重新
在Windows上編譯你的源程序.
3. Cygwin的下載與安裝
首先你必須到http://www.cygwin.com先下載一個安裝向?qū)募?setup.exe, 然后運行
setup.exe, 依次會出現(xiàn)下面的對話框:
(1)選擇安裝方式(選擇Download Without Installing)
(2)選擇本地存儲路徑
(3)選擇連接方式
(4)選擇下載站點(推薦兩個: http://mirrors.kernel.org, ftp.ntu.edu.tw)
(5)選擇下載包的內(nèi)容: 一共有四類. default只下載最小安裝包, Install則下載所有
的包, 在1.7版本里, Reinstall在下載的時候好像沒有什么用,不用選, Uninstall
是刪除安裝包嗎? 沒有試過. 至于窗口頂部那些“Keep”、“Prev”、“Curr”、“
Exp”等等選項 , 只是用來改變當(dāng)前樹結(jié)構(gòu)的顯示方式的, 對下載沒有什么影響. 用
戶可以用默認(rèn)的“Exp”.
(6)開始下載
如果用戶的運氣足夠好, 也許能夠一次性的下載成功. 若真能這樣, 恭喜恭喜!但如果你
和我一樣不幸, 下到一半網(wǎng)絡(luò)斷了,怎么辦?難道要我全部重新來一遍?幸運的是,Cygwin
的安裝向?qū)С绦蛑С謹(jǐn)帱c續(xù)傳功能: 你可以按照上面的步驟再次運行setup.exe, 把上面的
驟再執(zhí)行一遍就行了, cygwin會記住上次下載的東東的(適用于cygwin1.7, 對于
cygwin1.5, 貌似斷點下載的第5步要選擇Reinstall).
在用戶指定的本地存儲路徑內(nèi), 安裝向?qū)С绦驎深愃七@樣的一個目錄: http%3a%2f
%2fmirrors.kernel.org%2fsources.redhat.com%2fcygwin, 這就是你下載文件的真正所在
目錄. 還會生成兩個日志文件:setup.log和setup.log.full, 用戶感興趣的活, 可以打
開來看看, 對了解Cygwin的下載機制有不少幫助.
至于如何安裝, 其實就是再運行一次setup.exe, 不同的是, 在上述的第1步里選擇
Install from local, 在第5步里, 四個選項有不同的含義, Install代表安裝而不是下載
, Reinstall代表重新安裝而不是重新下載. 用戶可以在這里選擇要安裝的包, 不過我還是
建議選擇安裝所有的程序包, 免的以后麻煩.
4. cygwin下的一些應(yīng)用
4.1 默認(rèn)的應(yīng)用--也是我選擇cygwin的原因
之所以安裝cygwin, 是因為習(xí)慣于linux下的一些應(yīng)用, 在Windows上沒有, 或者找不到合
適的代替器, 所以在我的日常應(yīng)用中, 基本上cygwin被當(dāng)成是一臺只有命令行的Linux操作
系統(tǒng)使用. 而且因為運行在Windows上, 所以有時候少了和Windows通訊的煩惱.
* Gcc, Makefie, gdb: 這是最初接觸cygwin的原因. 很多公司在Windows上編譯
Linux 的東東, 沒有這個的確不行, 后來經(jīng)常自己寫一些驗證性質(zhì)的小程序, 也
用這個.
* Vim: vim提供了windows版本, 但是有時候還是習(xí)慣使用命令行版的Vim(不是
gvim), 盡管windows版本的gvim用的也很多.
* ls: 盡管Windows提供了類似的命令dir, 但是感覺還是ls信息論習(xí)慣和強大.
* telnet, ssh: 很多人使用secuCRT登錄設(shè)備, 個人感覺secuCRT有一項功能挺強
的, 那就是記錄log功能, 其它的挺弱的, 比不了cygwin. 再插上一句, 用cygwin
telnet 登錄 bbs還是比較好使的, 但是secuCRT和putty顯示中文都會有問題. 沒
用過 CTerm以及 XTerm之類的bbs終端, 但是我發(fā)現(xiàn)cgywin能實現(xiàn)基本它們聲稱的
大部分功能.
* ftp, sftp, lftp, tftp等: 這個也有專門的軟件來實現(xiàn), 好用的如FileZilla
FTP server和client版, 但是點鼠標(biāo)點的我手疼, 還是習(xí)慣命令行, 而且最近研
究了一些腳本, 對于經(jīng)常到某個ftp上存取文件使用一個命令就可以實現(xiàn), 不用再
登錄, 敲密碼, 進入到指定路徑, 上傳下載了, 還是蠻方便的.
* cvs: 有Windows版本的cvs工具wincvs, 貌似最初我用過好幾年, 但是現(xiàn)在一個
命令就能搞定的事情不愿意再開一個軟件再點擊好多次鼠標(biāo)了.
* diff和patch: 經(jīng)常寫代碼和寫文章的人用的著. Windows上暫時沒有發(fā)現(xiàn)替代
品.
* 閱讀一些命令的man page, 如man strcpy.
* 其它常用的Linux命令, 如rm, ping, tar, gzip, cat, echo等.
* Linux的重定向命令, 用過的人知道, 有時候這個還是很好用的, 呵呵
4.2 可以自己安裝一些好玩的東東
上面的應(yīng)用都是cygwin自帶的, 裝上就能用. 事實上如果你的cygwin是完全安裝的話, 你
對編程小有了解的話, 還可以自己編譯一些好玩的東東, 下面是我實驗過可以使用的:
* 純文本網(wǎng)頁瀏覽器(lynx, w3m或者elinks), 在命令行里瀏覽網(wǎng)頁.
* sdcv: 在命令行里查字典, 這個沒有人移植到Windows上.
* asterisk: 一個眾人皆知的voip server(這個需要修改的地方很多).
* mplayer: 在命令行里聽音樂, 貌似有人開發(fā)了一個叫cmmusic的東東, 可以同
步顯示歌詞, 編譯的時候cwygin存在一個叫l(wèi)lrint的問題, 如果遇到這個問題
(undefined reference to `_llrint'), 下面的 patch可以解決這個問題:
|
|===================================================================
|--- ffmpeg/libavcodec/i386/mathops.h (revision 6329)
|+++ ffmpeg/libavcodec/i386/mathops.h (working copy)
|@@ -37,3 +37,13 @@
| asm ("imull %2\n\t" : "=A"(rt) : "a" (ra), "g" (rb));\
| rt; })
|
|+#ifndef llrint
|+inline long long int llrint (double x)
|+{
|+ long long int llrintres;
|+ asm
|+ ("fistpll %0"
|+ : "=m" (llrintres) : "t" (x) : "st");
|+ return llrintres;
|+}
|+#endif
figure 1. patch for mplayer on cygwin
4.3 有一些應(yīng)用需要額外的配置
還有一些應(yīng)用, 用到的時候需要一些些額外的配置, 一并總結(jié)一下:
4.3.1 ssh服務(wù)在cygwin上架設(shè)指南
sshd服務(wù)在cygwin上默認(rèn)是不開啟的, 可能是出于安全的需要. 但是有些服務(wù)可能需要
cygwin作為一個sshd服務(wù)器. 這時你需要手動打開sshd服務(wù).[4]
1) 先確認(rèn)一下cygrunsrv.exe 已經(jīng)安裝.
whereis cygrunsrv
2) 生成ssh_config文件
這時候并不能起動sshd服務(wù)的, 先運行ssh-host-config 會提示你一些信息, 照著做就是
了, 多數(shù)是yes, 在選擇是否加載為service的時候小心一點, 這里的service是指windows
的service, 即使cygwin不啟動, sshd也會在開機的時候啟動起來.
3) 啟動或停止sshd
net start sshd (cygrunsrv -S sshd)
net stop sshd
4) 實施過程
打開cygwin控制臺, 輸入ssh-host-config, 一路yes, 提示CYGWIN值時, 輸入netsec tty.
啟動sshd服務(wù)用: net start sshd 或 cygrunsrv --start sshd; 停止sshd服務(wù)用:net
stop sshd 或 cygrunsrv --stop sshd
5. cygwin的一些問題及解決
5.1 如何改變home目錄
如果要改變home目錄則要編輯cygwin.bat, 具體如下:在bash命令之前加入set HOME=<用
戶目錄>, 比如:
set HOME=/home/g
此用戶目錄設(shè)置在/home/g.
5.2 cygwin顯示中文問題
/etc/skel/.bashrc
讓bash命令行可以輸入漢字, 編輯~/.inputrc, 添加:
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
讓ls命令顯示漢字, 在~\.bashrc中加入:
export LESSCHARSET=latin1
讓ls命令顯示漢字文件和目錄名, 在~\.bashrc中加入:
alias ls='ls -hF --show-control-chars --file-type'
一般的HOME目錄下第一次使用的時候沒有.inputrc和.bashrc文件的, 你可以自己新建一個
, 也可以從/etc/skel目錄下拷由一個現(xiàn)成的, 稍加改動就可以了.
5.3 cygwin下中文中現(xiàn)亂碼問題
在cygwin下用make編譯程序, 往往會出現(xiàn)亂碼. 這主要是因為cygwin對中文的支持不是很
理想引起的. 解決的辦法是將環(huán)境變量LANG設(shè)成UTF-8, 暫時不用中文, 在~/.bashrc文件
中加入下面的一句話:
export LANG=UTF-8
[參考資料]:
[1]Cygwin User's Guide, cygwin官方網(wǎng)站,
http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html
[2] 大冬瓜的博客, Cygwin安裝圖記, http://lostu.blogbus.com/logs/10765519.html
[3] OoNiceDream的博客, 如何配置cygwin,
http://oonicedream.itpub.net/post/36905/457409
[4] Cygwin上的ssh服務(wù)的putty自動登錄問題, http://markli.javaeye.com/blog/39661
[5] Cygwin上的ssh服務(wù)的putty自動登錄問題,
http://hi.baidu.com/%BB%D4%B8%E7/blog/item/51a7bf3ef17f1eff828b13aa.html
[6] cygwin & putty, http://blog.chinaunix.net/u/31756/showart_416440.html