搭建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窗口,运行命令后退出. 虽然, 感受也不怎么样好.

相关文章
相关标签/搜索