搭建Linux工做環境之Cygwin

圖片描述

live with scopegit

上一篇談到用Vagrant管理虛擬機, 但總須要一個ssh工具登陸虛擬機. 目前, 微軟官方並不提供ssh(彷佛官方的ssh已經在開發日程上了), 你須要安裝. 你或者安裝一些工具, 會自帶ssh程序, 如git for Windows, 只是程序並不在系統path中, 須要本身添加以方便命令行使用. 或者你安裝ssh客戶端, 如putty, xshell. 其中推薦xshell, 功能強大, 提供密鑰的生成和管理, 會話建立和管理. 又或者安裝Cygwin.github

這裏假設你只是經過ssh到虛擬機來開發Linux程序, 在xshellCygwin之間, 我我的推薦Cygwin. 兩個緣由: 1, xshellssh前提供的原生shellWindows的虛擬DOS, 你可能會在登陸先後變換shell命令. 2, xshell在有主題配色時, 登陸虛擬機並使用tmux命令時, 會在面板間串色. A面板使用Vim, B面板使用Bash, 色彩老是互相影響. 這個問題很是惱火, 但多方查詢沒找到解決方法. 但Cygwin也有不滿意的地方, 其使用的mintty功能太羸弱, 連基本的多標籤都不支持.shell

Cygwin

Cygwin提供了一個軟件層, 用於Linux系統APIWindows系統API的翻譯, 能提供最接近原生Linux的體驗. 不過, 由於增長了一層翻譯, 也致使當安裝軟件過多時, 運行較大軟件時, 會至關慢. 雖然, 你能夠經過Cygwin安裝KDEGnome桌面, X11框架, 但強烈不推薦.vim

在官網下載setup-x86_64.exe, 運行, 在下載點選擇時推薦163的, 速度很快. 在程序包選擇時, 建議除了默認外, 只安裝極少許你必須的包, 畢竟你主要的開發環境在虛擬機上. 提供ssh工具和vim編輯器是默認安裝的.緩存

Cygwin自己提供gcc的程序包, 但若是你必定須要的話, 會發現它有三個版本, gcc, cygwin-gcc, mingw-gcc. 它們有一點區別, gcc編譯的程序只能在Cygwin環境下運行, mingw-gcc編譯的程序能夠在Windows環境下運行, cygwin-gcc編譯的程序須要cygwin.dll庫才能在Windows下運行(印象中是這麼個區別, 建議別趟這個坑).bash

安裝好Cygwin後, 如上一篇所述, cd到項目目錄, vagrant up開啓虛擬機, vagrant ssh登陸虛擬機. Ctrl-D退出虛擬機, vagrant halt關閉虛擬機.框架

apt-cyg

一個Cygwin的包管理工具,可以使用命令行安裝須要的程序包。工具主頁是https://github.com/transcode-open/apt-cyg.ssh

默認狀況下, 當你想安裝新的程序包, 運行以前下載的setup-x86_64.exe, 在包選擇界面選擇, 再下載安裝. 很是很是難以理解, 一個模擬Linux環境的工具, 安裝程序時卻不能在自身環境中完成. 因而, 有這麼個工具.編輯器

就使用體驗來看, 從各個方面都不要指望它和apt-get同等級好用。它安裝時自動安裝依賴包,但刪除包時則沒有處理無依賴的包。工具

安裝

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

經常使用命令:

  • 安裝包:apt-cyg install pkgname

  • 移除包:apt-cyg remove pkgname

  • 更新包緩存:apt-cyg update

  • 下載包:apt-cyg download pkgname

  • 顯示包信息:apt-cyg show pkgname

  • 生產包依賴的樹:apt-cyg depends pkgname

  • 生成依賴包的樹:apt-cyg rdepends pkgname

  • 列出本地包:apt-cyg list [regexp]

  • 列出全部包:apt-cyg listall [regexp]

  • 顯示指定類的全部包:apt-cyg category [Base|Devel|Ruby...]

  • 搜索包含指定文件的本地包:apt-cyg search filepath

  • 搜索包含指定文件的全部包:apt-cyg searchall filepath

  • 指定源鏡像:apt-cyg mirror [url | http://mirrors.163.com/cygwin/]

  • 指定包下載路徑:apt-cyg cache [dirpath]

製做portable版Cygwin

若是你有多臺機器, 每次都要重複安裝一遍Cygwin, 特別是每次都要選擇相同的程序包, 是比較痛苦的. 所以, 確保安裝好後, 包括你須要的各類軟件, 將其製做成便攜版, 可隨處解壓使用纔是解決之道.

本地機器:

  • 壓縮打包安裝目錄

  • 導出註冊表:reg export HKLM\SOFTWARE\Cygwin abc.reg

另外一臺機器:

  • 解壓縮安裝目錄

  • 修改註冊表相關根目錄

  • 導入註冊表:reg import abc.reg

卸載Cygwin

如何完整刪除電腦上的Cygwin, 是的, 總有這種須要.

  • 刪除下載包目錄

  • 中止服務: cygrunsrv -L, cygrunsrv -S, cygrunsrv -R

  • 刪除安裝目錄

  • 刪除註冊表: reg delete HKLM\SOFTWARE\Cygwin /f, reg delete HKCU\SOFTWARE\Cygwin /f

  • 刪除環境變量: PATH, CYGWIN

特權命令

WindowsUAC權限控制在某些時候仍是比較煩人的. 你可能須要運行一個特權命令, 而在圖標上右擊選擇以管理員身份運行一個特權版的Cygwin總感受很Low, 且不一樣的工做目錄要來回切換也麻煩. 但cygwin沒有root用戶也沒有sudo這樣的提權工具, 多方查找後, 這裏能夠近似實現一個.

新建腳本sudo,並添加到PATH路徑中:

#!/usr/bin/bash
cygstart --action=runas "$@"

若是須要運行特權命令,會彈出一個新的特權cygwin窗口,運行命令後退出. 雖然, 感受也不怎麼樣好.

相關文章
相關標籤/搜索