Windows下的新玩具 MSYS

mingwmsys

如果想要利用高效的UNIX环境又无法脱离Windows环境,或者只是想接触学习UNIX,不喜欢弱智的CMD,欢迎使用MSYS!另外一点我用过之后才发现的强大之处在于:在MSYS环境中你可以调用所有的Windows应用程序!因为这个环境里的程序本身也都是Windows程序。

这里记录一下自己的环境搭建过程,仅作备忘只用.

安装

MinGW主页有很多有用的信息可以挖

但其实安装文件都在这里:sourceforge.net

GUI安装程序在这里

推荐大家使用GUIInstaller。这个Installer其实就是一些repository(发布源)的定义和mingw-get命令(下边讲到)的壳。安装过程会问你使用Usepre-packagedrepositorycatalogs(使用预定义的发布源)或者Downloadlatestrepositorycatalogs(下载并使用最新的发布源信息)。后边安装的选项有:

  • MinGWCompilerSuite(MinGW编译器工具包,Windows下的CPP开发组建包)
  • MSYSBasicSystem(MSYS基本系统,一般使用这个就够了)
  • MSYSDeveloperToolkit(MSYS开发工具包)

安装完成后调用c:/mingw/msys/1.0/msys.bat就可以启动MSYS环境了

安装vim(可选)

具体的安装方法可以参考下边的mingw-get命令。这里想强调一下可以通过把vim插件放在~/.vim文件夹里方便转移你原来的vim配置环境。当然还有~/.vimrc。对应vim的Windows版本文件夹里的vimfiles文件夹和_vimrc。

推荐几个vim插件,具体是什么自己去搜吧:

  • NERD_tree.vim
  • a.vim
  • acp.vim
  • bufexplorer.vim
  • c.vim
  • minibufexpl.vim
  • rails.vim
  • snipMate.vim
  • taglist.vim
  • winfileexplorer.vim
  • winmanager.vim
  • wintagexplorer.vim

安装mintty或rxvt(推荐)

为什么要用mintty或rxvt(终端模拟器)?因为MSYS环境貌似跑在cmd里边,还把鼠标功能禁用了,只能粘贴,不能拷贝,不能shift+insert,不能换字体...

个人强烈推荐mintty!先使用mingw-get安装mintty再创建如下快捷方式:C:\MinGW\msys\1.0\bin\mintty.exebin/bash-l

mingw-get install msys-mintty-bin
mingw-get install msys-rxvt-bin
# mingw-get -help 可以看到它有update, install, upgrade, remove几个
# 子命令,还有具体的包名格式,以上边为例:msys为子系统名(mingw32/msys)
# rxvt为工具名,bin为可省略的组件名(bin/doc/src)

配置

# 1. 配置文件系统,推荐使用UNIX编辑,因为这个文件的换行符必须是UNIX格式的LF
vim /etc/fstab
# make sure to use 'LF line endings.
# create a folder for the mount point to utilize auto complete
# may need to restart system to reinitialize msys DLL
# 更多内容请参考/etc/fstab.sample,说的很清楚了
# 另外需要注意的是重新安装会覆盖你的设置!

# 2. 配置基本环境
vim ~/.profile
# 和~/.vimrc道理一样,这个文件是对/etc/profile的自定义版本
# 推荐在这里做一些环境变量设置:
# alias ll="ls -l"    给”ls -l“ 起个别名”ll“
# export JAVA_HOME="/c/Program Files (x86)/Java/jdk1.6.0_25"   Java环境变量
# export PATH=$PATH:/c/Python27:$JAVA_HOME/bin
# 注意上边的PATH分隔符是冒号而不是Windows下的分号!
# bash readline init:
# /etc/inputrc.default does not affect your system
cp /etc/inputrc.default ~/.inputrc

初始化info

info文件路径:

mingw:/mingw/share/info

msys:/share/info

# Steps:
# in each info path above:
for f in ./*.info; do install-info $f dir; done
# [optional] add the info path above to INFOPATH

搭建编译环境(一般不需要)

需要更新时使用mingw-get更新即可,一般不需要自己编译程序。但是如果你想要通过重新编译增加程序的功能可以参考下边的介绍。要注意的是这里指用来编译连接MSYS环境专用程序的环境,不是MinGW的Windows开发环境。

详细请参考HOWTO_Create_an_MSYS_Build_Environment

1.安装MSYS专用GCC,必须要用MSYS的GCC(gcc-version会显示“MSYSspecial”字样)

mingw-get install msys-gcc-bin
# 可以通过which gcc 看到你当前环境的gcc是mingw的还是msys的

2.启动MSYS环境:

msys.bat MSYS
rem 注意这里是从run窗口,或者Command Prompt中启动
rem MSYS的编译环境需要指明MSYSTEM环境变量为MSYS
rem 这需要通过msys.bat的参数制定
rem 因为msys.bat的默认启动方式是MINGW32

3.下载你想自己编译的包,如msys-bash-src,展开后只需按说明文档执行脚本即可

4.值得一提的是如果你在MINGW环境中使用Vim(实际是为MSYS环境编译的)因为它调用的GCC是MINGW版本,所以消息中会包含Windows路径,如D:\my_src,这样的路径vim是无法识别的。此时VIM会告诉你文件无法找到,VIM还会自己新建一个buffer,形如“Fileincludedfromd:/my_src/..”。目前还没找到好的方法。但如果只是写测试代码,又不想受这个错误消息干扰,还是使用MSYS环境编译吧。

推荐工具列表

工具都可以通过mingw-get获取,全部的工具都可以在这里找到

  • wget:网页,FTP下载工具
  • dos2unix:转换Windows,UNIXEOL
  • rsync:远程同步工具
  • mktemp:安全创建临时文件在/tmp下,使用全局唯一的文件名

后记

另有国人维护的一个MSYS-CN项目

相关推荐