MSYS2对*NIX世界的兼容性~衍生自Cygwin


//
msys2使用小结 | 知行近思
http://www.annhe.net/article-3482.html
MSYS2是MSYS的一个升级版,准确的说是集成了pacman和Mingw-w64的Cygwin升级版, 提供了bash shell等linux环境、版本控制软件(git/hg)和MinGW-w64 工具链。与MSYS最大的区别是移植了 Arch Linux的软件包管理系统 Pacman(其实是与Cygwin的区别)。[1]

//
pacman查找安装软件
pacman -Ss #查找软件
pacman -S #安装软件
pacman -Sl #列出支持软件
pacman -Qi #查看某个软件包信息
pacman -Ql #列出软件包内容


//
使用MSYS2/MinGW-w64环境编译GNU Emacs | M-x Chris-An-Emacser
https://chriszheng.science/2015/03/19/Chinese-version-of-Emacs-building-guideline/
MSYS2是MS-Windows下编译自由/开源软件的一个环境,衍生自Cygwin,也就是说它和Cygwin一样,编译出的程序不能脱离Cygwin环境运行(其实就是离不开那几个DLL文件)。但MSYS2有一个很牛的地方是它自带了MinGW-w64,MinGW-w64可以认为是MinGW的升级版本,编译出的程序是原生的Windows程序,最大的特点和名字一样,支持编译出64位的程序。目前MSYS2和MinGW-w64开发都很活跃,两者结合,既发挥了MSYS2对*NIX世界的兼容性,又能用MinGW-w64编译原生代码,很爽,自带的包很丰富,包管理采用Arch Linux用的Pacman,非常的方便。

一不小心说多了,总之,用MSYS2/MinGW-w64能方便的编译自由/开源软件,这里我们用这个组合来编译64位的GNU Emacs,也就是项目Emacs-w64。


//
从cygwin迁移到msys2的原因和步骤 - 陌辞寒的技术博客 - SegmentFault
https://segmentfault.com/a/1190000002789600
为什么从cygwin迁移到msys2
习惯Linux后,再使用Windows的话,cygwin基本是必须的。但cygwin有一些痛点:

没有一个好用的包管理工具,无论是官方的setup.exe,还是第三方的几个apt-cyg,都存在使用不方便和功能不全的问题:
setup.exe选包很累人
apt-cyg和它的依赖得额外安装
cygwin的已安装软件数据库不区分是直接安装的还是被依赖的包,一旦装上想等卸载就只能自己手动分辨了
apt-cyg不支持软件升级操作,我自己加上了这个功能(goreliu/apt-cyg),虽然基本能用,但还是存在一些问题
cygwin的软件打包方式不方便,并且为官方软件仓库提交新的包需要走加邮件列表、发邮件、确认、上传等诸多流程
cygwin里不少软件的版本还是比较老的,比如git还是2.1.4版本的,升级缓慢(一个好消息是python和ruby最近几天升级到最新版本了,之前还是python 2.7.8/3.2.2、ruby 2.0.0,盼了好久)
而msys2基本上解决了这些问题:
使用从archlinux移植过来的pacman,功能完整,使用方便
PKGBUILD好写,用过archlinux的话无学习成本,为官方源提交新包可以直接在github发PR
msys2里的软件总体是要比cygwin新的(一个特例,最近cygwin的ruby升级到了最新的2.2,而msys2的还是2.1)

使用pacman安装需要的软件

你可能感兴趣的:(MSYS2对*NIX世界的兼容性~衍生自Cygwin)