Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
191 views
in Technique[技术] by (71.8m points)

How are msys, msys2, and msysgit related to each other?

I've been searching around, but I can't find a thorough description of what's going on with these 3 versions of MSYS. (It's entirely possible I just don't know what to look for.) I do understand that MSYS is a minimal port of Linux tools to support development using MinGW, but I'm not clear on the relationship between the three of them or the teams that developed/maintain them.

Particular issues to address:

  • Which ones are under active development? (In particular, is MSYS dead and MSYS2 active?)
  • What is the relationship between the groups that maintain them? (In particular, did the MSYS team create MSYS2?)
  • Does msysgit just use one of the others, or do they have their own branch of MSYS?
  • Are any of these compatible with each other?
  • Are there any compatibility issues with particular versions of Windows for any of these?
  • Does one provide major features over the other?
Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Disclaimer: I am an MSYS2 developer

While MSYS isn't dead, I would say it's not looking very healthy either. It is a project started by the MinGW team many years ago as a fork of Cygwin that never kept up with Cygwin.

msysgit is a fork of a slightly older version of MSYS with some custom patches, old versions of Bash and Perl and a native port of Git.

MSYS2 is a project started by Alexey Pavlov of the mingw-builds team (who are the official packagers for MinGW-w64 toolchains) as a recent fork of Cygwin which tracks the latest Cygwin closely so that it doesn't end up out of date. Alexey forward ported the old MSYS patches and added some of his own.

As well as providing the necessary Unix tools with which to compile native software - the stated goal of MSYS - we ported the Pacman package manager from Arch Linux. Pacman is more than just about managing binary packages (though it does that very well). It has a software building infrastructure called makepkg that allows the creation of recipes (PKGBUILD and patch files) for building software.

IMHO, the adoption of Pacman changes things significantly for open source development on Windows. Instead of everyone hacking on their own bespoke shell scripts to build software in a hodge-podge, incompatible way, packages can now depend on other packages and PKGBUILD files and associated patches can be used as a reference for constructing new PKGBUILDs. It's as close to a Linux system as a (native) Windows can get (Arch Linux in particular) and allows for simple updating of all the installed packages.

We target Windows XP SP3 as a minimum and support both 32-bit and 64-bit Windows. We would ask that you never mix MSYS2 with msys or msysgit. Pacman is used to manage the whole system and as such, files from the other systems will cause conflicts.

We also try to upstream our patches to the projects we build and actively solicit contributions from other open source projects. We hope others find it easy to work with us.

Our main website is on SourceForge, and it contains links to our PKGBUILD repositories. We also have a more user friendly installer site on GitHub.

Feel free to join us on IRC (oftc #msys2) if you want more information.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...