mingw msys

mingw msys 

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

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

安装 

MinGW主页有很多有用的信息可以挖 
但其实安装文件都在这里:  sourceforge.net 
GUI安装程序在 这里 

推荐大家使用GUI Installer。这个Installer其实就是一些repository(发布源)的定义和mingw-get命令(下边讲到)的壳。安装过程会问你使用Use pre-packaged repository catalogs(使用预定义的发布源)或者Download latest repository catalogs(下载并使用最新的发布源信息)。后边安装的选项有: 
  • MinGW Compiler Suite (MinGW编译器工具包,Windows下的CPP开发组建包)
  • MSYS Basic System (MSYS基本系统,一般使用这个就够了)
  • MSYS Developer Toolkit (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.exe bin/bash -l 
Bash代码   收藏代码
  1. mingw-get install msys-mintty-bin  
  2. mingw-get install msys-rxvt-bin  
  3. # mingw-get -help 可以看到它有update, install, upgrade, remove几个  
  4. # 子命令,还有具体的包名格式,以上边为例:msys为子系统名(mingw32/msys)  
  5. # rxvt为工具名,bin为可省略的组件名(bin/doc/src)  


配置 

Bash代码   收藏代码
  1. 1. 配置文件系统,推荐使用UNIX编辑,因为这个文件的换行符必须是UNIX格式的LF  
  2. vim /etc/fstab  
  3. # make sure to use 'LF line endings.  
  4. # create a folder for the mount point to utilize auto complete  
  5. # may need to restart system to reinitialize msys DLL  
  6. # 更多内容请参考/etc/fstab.sample,说的很清楚了  
  7. # 另外需要注意的是重新安装会覆盖你的设置!  
  8.   
  9. 2. 配置基本环境  
  10. vim ~/.profile  
  11. # 和~/.vimrc道理一样,这个文件是对/etc/profile的自定义版本  
  12. # 推荐在这里做一些环境变量设置:  
  13. # alias ll="ls -l"    给”ls -l“ 起个别名”ll“  
  14. # export JAVA_HOME="/c/Program Files (x86)/Java/jdk1.6.0_25"   Java环境变量  
  15. # export PATH=$PATH:/c/Python27:$JAVA_HOME/bin  
  16. # 注意上边的PATH分隔符是冒号而不是Windows下的分号!  
  17. # bash readline init:  
  18. # /etc/inputrc.default does not affect your system  
  19. cp /etc/inputrc.default ~/.inputrc  


初始化info 

info文件路径: 
mingw: /mingw/share/info 
msys:  /share/info 
Sh代码   收藏代码
  1. # Steps:  
  2. # in each info path above:  
  3. for f in ./*.info; do install-info $f dir; done  
  4. # [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会显示 “MSYS special”字样) 
Bash代码   收藏代码
  1. mingw-get install msys-gcc-bin  
  2. # 可以通过which gcc 看到你当前环境的gcc是mingw的还是msys的  

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

3. 下载你想自己编译的包,如msys-bash-src,展开后只需按说明文档执行脚本即可 
4. 值得一提的是如果你在MINGW环境中使用Vim(实际是为MSYS环境编译的)因为它调用的GCC是MINGW版本,所以消息中会包含Windows路径,如D:\my_src,这样的路径vim是无法识别的。此时VIM会告诉你文件无法找到,VIM还会自己新建一个buffer,形如“File included from d:/my_src/..”。目前还没找到好的方法。但如果只是写测试代码,又不想受这个错误消息干扰,还是使用MSYS环境编译吧。 

推荐工具列表 

工具都可以通过mingw-get获取,全部的工具都可以在 这里找到 
  • wget:网页,FTP下载工具
  • dos2unix: 转换Windows, UNIX EOL
  • rsync: 远程同步工具
  • mktemp: 安全创建临时文件在/tmp下,使用全局唯一的文件名



后记 
另有国人维护的一个 MSYS-CN项目
分享到:   
评论
4 楼  DearGrandpa 2012-07-06  
sarrow 写道
您好,我在使用msys-mingw的时候,遇到了一个疑问,麻烦你帮忙解答一下。 

就是这个mingw-get,这个程序啊,他是如何把下载到到安装包,解压到特定目录的?有没 
有什么参数,可以控制它的行为?比方我想让他把程序安装到特定的目录下? 
... 

路径在下面的文件里, 
MSYS\mingw\var\lib\mingw-get\data\defaults.xml 
你可以复制一份命名成 profile.xml 之后,修改 profile.xml 中的路径即可 
Java代码   收藏代码
  1. <sysroot subsystem="MSYS" path="%R/../../msys/" />  
3 楼  zealotds 2012-05-22  
你好!
我没有用过msys-cn,但我刚刚看了一下它们的 网站。它们使用“mpkg”的工具管理包,你可以尝试使用这个工具管理你的工具包,使用实例在网站主页上就有。

我不是很清楚你的需求——为什么要在msys-cn里使用mingw-get?因为是不同的发行版本,虽然同根但仍可能存在兼容性问题(库依赖),这可能为你以后的使用带来隐患。
2 楼  sarrow 2011-12-03  
晕掉,缩进没了;重新贴一次。 
---------------------------------------------------------------------- 

您好,我在使用msys-mingw的时候,遇到了一个疑问,麻烦你帮忙解答一下。 

就是这个mingw-get,这个程序啊,他是如何把下载到到安装包,解压到特定目录的?有没 
有什么参数,可以控制它的行为?比方我想让他把程序安装到特定的目录下? 

起因是这样的;最开始,我用的是msys-cn;它的目录结构是: 

\MSYS\msys.bat 
|-etc\ 
|-extra\ 
`-mingw\ 

msys-cn,是以msys为主导,mingw编译器组件,都在msys目录下。 

而,msys-mingw默认的目录结构,是这样: 

\MinGW 
`-msys\1.0\msys.bat 

msys,成了mingw的一个组件。 

如果要工作在msys环境下,显然 ,msys-cn的模式比较方便一点。 

于是,我就手动修改了msys-mingw的目录树结构(比如msys\MinGW的形式。),让mingw处 
于msys的下层;同时,修改了etc/profile文件,让msys仍然能正确找到mingw工具。 

但是,问题来了;当我使用mingw-get,下载其余的工具包的时候,它竟然不管我的修改, 
仍然往,\MinGW\msys\1.0\下面放……;结果,目录树就成了: 

\msys\MinGW\msys\1.0\... 

这让我很郁闷。 
1 楼  sarrow 2011-12-03  
您好,我在使用msys-mingw的时候,遇到了一个疑问,麻烦你帮忙解答一下。 

就是这个mingw-get,这个程序啊,他是如何把下载到到安装包,解压到特定目录的?有没 
有什么参数,可以控制它的行为?比方我想让他把程序安装到特定的目录下? 

起因是这样的;最开始,我用的是msys-cn;它的目录结构是: 

\MSYS\msys.bat 
\etc\ 
\extra\ 
\mingw\ 

msys-cn,是以msys为主导,mingw编译器组件,都在msys目录下。 

而,msys-mingw默认的目录结构,是这样: 

\MinGW 
\msys\1.0\msys.bat 

msys,成了mingw的一个组件。 

如果要工作在msys环境下,显然 ,msys-cn的模式比较方便一点。 

于是,我就手动修改了msys-mingw的目录树结构(比如msys\MinGW的形式。),让mingw处 
于msys的下层;同时,修改了etc/profile文件,让msys仍然能正确找到mingw工具。 

但是,问题来了;当我使用mingw-get,下载其余的工具包的时候,它竟然不管我的修改, 
仍然往,\MinGW\msys\1.0\下面放……;结果,目录树就成了: 

\msys\MinGW\msys\1.0\... 

这让我很郁闷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值