live with scopegit
上一篇談到用Vagrant
管理虛擬機, 但總須要一個ssh
工具登陸虛擬機. 目前, 微軟官方並不提供ssh
(彷佛官方的ssh
已經在開發日程上了), 你須要安裝. 你或者安裝一些工具, 會自帶ssh
程序, 如git for Windows
, 只是程序並不在系統path
中, 須要本身添加以方便命令行使用. 或者你安裝ssh
客戶端, 如putty
, xshell
. 其中推薦xshell
, 功能強大, 提供密鑰的生成和管理, 會話建立和管理. 又或者安裝Cygwin
.github
這裏假設你只是經過ssh
到虛擬機來開發Linux
程序, 在xshell
和Cygwin
之間, 我我的推薦Cygwin
. 兩個緣由: 1, xshell
未ssh
前提供的原生shell
是Windows
的虛擬DOS
, 你可能會在登陸先後變換shell
命令. 2, xshell
在有主題配色時, 登陸虛擬機並使用tmux
命令時, 會在面板間串色. A
面板使用Vim
, B
面板使用Bash
, 色彩老是互相影響. 這個問題很是惱火, 但多方查詢沒找到解決方法. 但Cygwin
也有不滿意的地方, 其使用的mintty
功能太羸弱, 連基本的多標籤都不支持.shell
Cygwin
提供了一個軟件層, 用於Linux
系統API
到Windows
系統API
的翻譯, 能提供最接近原生Linux
的體驗. 不過, 由於增長了一層翻譯, 也致使當安裝軟件過多時, 運行較大軟件時, 會至關慢. 雖然, 你能夠經過Cygwin
安裝KDE
或Gnome
桌面, 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
關閉虛擬機.框架
一個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]
若是你有多臺機器, 每次都要重複安裝一遍Cygwin
, 特別是每次都要選擇相同的程序包, 是比較痛苦的. 所以, 確保安裝好後, 包括你須要的各類軟件, 將其製做成便攜版, 可隨處解壓使用纔是解決之道.
本地機器:
壓縮打包安裝目錄
導出註冊表:reg export HKLM\SOFTWARE\Cygwin abc.reg
另外一臺機器:
解壓縮安裝目錄
修改註冊表相關根目錄
導入註冊表:reg import abc.reg
如何完整刪除電腦上的Cygwin
, 是的, 總有這種須要.
刪除下載包目錄
中止服務: cygrunsrv -L, cygrunsrv -S, cygrunsrv -R
刪除安裝目錄
刪除註冊表: reg delete HKLM\SOFTWARE\Cygwin /f
, reg delete HKCU\SOFTWARE\Cygwin /f
刪除環境變量: PATH
, CYGWIN
Windows
的UAC
權限控制在某些時候仍是比較煩人的. 你可能須要運行一個特權命令, 而在圖標上右擊選擇以管理員身份運行一個特權版的Cygwin
總感受很Low
, 且不一樣的工做目錄要來回切換也麻煩. 但cygwin
沒有root
用戶也沒有sudo
這樣的提權工具, 多方查找後, 這裏能夠近似實現一個.
新建腳本sudo,並添加到PATH路徑中:
#!/usr/bin/bash cygstart --action=runas "$@"
若是須要運行特權命令,會彈出一個新的特權cygwin
窗口,運行命令後退出. 雖然, 感受也不怎麼樣好.