Cygwin是Windows上的仿真Linux环境,可以对很多基于Linux开发的源码进行编译,比如以前接触的vlc和FFmpeg等音视频项目。
还有一个类似的环境是MinGW+Msys,但是在Windows7 x86_64位上MinGW的界面Msys(rxvt)无法使用,丑陋的DOS窗口及极慢的反应速度让人无法接受。
Cygwin虽然也慢,但提供了基于自身环境的GCC,还提供了MinGW的GCC,并且也集成了相关软件,诸如SSH,GIT等,界面及颜色较为漂亮,字体可修改,还有中文的输出,比较完美。
当然,Cygwin也有自己的缺点,那就是无法使用类似mingw-get进行软件的在线升级。需重新运行安装文件进行了升级,虽然麻烦点,但不太经常升级软件所以可以凑合使用。
Cygwin的下载
在Cygwin的下载页面,选择x86版本还是x86_64版本进行下载。建议选择32位版本。
也可到汪汪的网盘下载离线安装zip包,路径为/Cygwin
。
注意:后面章节某些图片由于是之前切的,有些路径并不能完全对应。
Cygwin的离线安装
双击“setup-x86.exe”。
点击“下一步”。
选择“Install from Local Directory”,进行离线安装。点击“下一步”。
在线安装请选择“Install from Internet”,并添加国内163的源http://mirrors.163.com/cygwin/
。
选择安装路径,建议安装到除系统盘的根目录下。点击“下一步”。
选择离线包的路径 ,点击“下一步”。
选择要安装的包,将状态从“Skip”点击到相对应的版本,具体哪些需要安装,见下一章。点击“下一步”。
正在安装……
选择要创建的图标,点击“完成”。
双击桌面的“Cygwin Terminal”图标,第一次启动,会创建$HOME
目录,及相关的文件。至此,安装完成。
选择安装包
推荐的安装包如下。如果需要其他安装包,再次运行安装文件,选择在线安装,并重新选择安装的包即可。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
Archive unzip xz zipDevel autoconf automake binutils cmake cvs cygwin64-libiconv gcc-core gcc-g++ (3.4.4-3) gdb gettext-devel git git-completion libtool make mingw-binutils mingw-gcc-core mingw-gcc-g++ mingw-pthreads mingw-runtime mingw-w32api mingw64-i686-binutils mingw64-i686-gcc-core mingw64-i686-g++ mingw64-i686-pkgconfig mingw64-i686-runtime mingw64-x86_64-binutils mingw64-x86_64-gcc-core mingw64-x86_64-g++ mingw64-x86_64-pkg-config mingw64-x86_64-runtime nasm patch patchutils pkg-config subversionEditor vimLibs crypt expat libgcrypt-devel libgcrypt20Net curl opensshText gettextUtils cygutils-extra dos2unixWeb wget |
配置Cygwin
开启Cygwin后,在标题栏点击右键->“Option”。
设置字体。几种常用的等宽字体,请到汪汪的网盘下载,路径为/Fonts
。
设置显示行数。
访问系统文件
Cygwin可访问系统中的所有文件,默认的根目录/为Cygwin的安装目录,要访问其他盘符,对应的路径为/cygdriver/盘符
。
Cygwin的删除
建议先备份$HOME
目录。
- 删除安装文件夹。
- 注册表删除
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Cygwin]
。
Cygwin的复制粘贴
- 鼠标选中即为复制。
- 右键->“Paste”为粘贴,快捷键为
Shift+Insert
。
Cygwin的命令行升级
(2015.07.20更新本章。2016.05.14再次更新。)
Cygwin官方推荐使用setup.exe
进行程序升级,不推荐其他方式,诸如apt-cyg
。setup.exe
支持命令行参数。可以用参数开启静默安装。升级过程参数如下。
123 |
$ curl -O https://cygwin.com/setup-x86.exe$ chmod a+x setup-x86$ ./setup-x86 --no-desktop --no-shortcuts --no-startmenu --quiet-mode --upgrade-also --site http://mirrors.163.com/cygwin/ |
升级完成后,建议重启Cygwin,因为cygwin1.dll
升级后不会自动加载,其他程序无法读取正常访问。
setup.exe
的帮助文档解释了上述参数的作用。
123456789101112131415161718192021222324252627282930313233343536373839404142 |
$ ./setup-x86.exe -h Command Line Options: -D --download Download from internet -L --local-install Install from local directory -s --site Download site -O --only-site Ignore all sites except for -s -R --root Root installation directory -x --remove-packages Specify packages to uninstall -c --remove-categories Specify categories to uninstall -P --packages Specify packages to install -C --categories Specify entire categories to install -p --proxy HTTP/FTP proxy (host:port) -a --arch architecture to install (x86_64 or x86) -q --quiet-mode Unattended setup mode -M --package-manager Semi-attended chooser-only mode -B --no-admin Do not check for and enforce running as Administrator -W --wait When elevating, wait for elevated child process -h --help print help -v --verbose Verbose output -l --local-package-dir Local package directory -r --no-replaceonreboot Disable replacing in-use files on next reboot. -X --no-verify Don't verify setup.ini signatures -n --no-shortcuts Disable creation of desktop and start menu shortcuts -N --no-startmenu Disable creation of start menu shortcut -d --no-desktop Disable creation of desktop shortcut -K --pubkey URL of extra public key file (gpg format) -S --sexpr-pubkey Extra public key in s-expr format -u --untrusted-keys Use untrusted keys from last-extrakeys -U --keep-untrusted-keys Use untrusted keys and retain all -g --upgrade-also also upgrade installed packages -o --delete-orphans remove orphaned packages -m --mirror-mode Skip availability check when installing from local directory (requires local directory to be clean mirror!) -A --disable-buggy-antivirus Disable known or suspected buggy anti virus software packages during execution. |
~~ EOF ~~