我一直在寻找,但我找不到这三个版本的MSYS正在发生什么的详尽描述.(完全有可能我只是不知道该寻找什么.)我明白MSYS是支持使用MinGW进行开发的Linux工具的最小端口,但我不清楚它们三者之间的关系还是开发/维护它们的团队.
要解决的具体问题:
Ray*_*lly 169
免责声明:我是MSYS2开发人员
虽然MSYS没有死,但我会说它看起来也不健康.这是多年前由mingw团队开创的一个项目,作为Cygwin的一个分支,从未与Cygwin保持同步.
msysgit是一个稍微旧版本的MSYS的分支,带有一些自定义补丁,旧版本的bash和perl以及git的本机端口.
MSYS2是由mingw-builds团队的Alexey Pavlov(他们是MinGW-w64工具链的官方包装商)开始的项目,作为Cygwin的最新分支,它密切跟踪最新的Cygwin,以便它不会过时.Alexey向前移植了旧的MSYS补丁并添加了一些自己的补丁.
除了提供用于编译本机软件的必要Unix工具 - MSYS的既定目标 - 我们从Arch Linux移植了Pacman包管理器.Pacman不仅仅是管理二进制包(尽管它做得非常好).它有一个名为makepkg的软件构建基础架构,允许创建用于构建软件的配方(PKGBUILD和补丁文件).恕我直言,Pacman的采用改变了Windows上开源开发的重要性.而不是每个人都用他们自己的定制shell脚本来破解以不兼容的方式构建软件,现在包依赖于其他包,PKGBUILD文件和相关的补丁可以用作构建新PKGBUILD的参考.它与(本机)Windows可以获得的Linux系统(特别是Arch)一样接近Linux系统,并允许简单更新所有已安装的软件包.
我们将Windows XP SP3作为最低目标,并支持32位和64位Windows.我们要求你永远不要将MSYS2与msys或msysgit混合使用.Pacman用于管理整个系统,因此来自其他系统的文件将导致冲突.
我们还尝试上传我们构建的项目的补丁,并积极征求其他开源项目的贡献.我们希望其他人觉得与我们合作很容易.
我们的主要网站是Sourceforge,它包含我们PKGBUILD存储库的链接.我们在github上也有一个更友好的安装程序站点.
如果您想了解更多信息,请随时加入我们的IRC(oftc#msys2).
Von*_*onC 67
Git的2.8(2016年3月),包括一个非常详细的承诺这解释msys2的新的重要性混帐的窗口,其在2015年初更换msysgit.
请参阅Johannes Schindelin()提交df5218b(2016年1月13日).(由Junio C Hamano合并- -在提交116a866,2016年1月29日)dscho
gitster
很长一段时间,Git for Windows落后于Git的2.x版本,因为Git for Windows开发人员希望让这个大跳跃与从MSys到MSys2的急需跳跃相吻合.
要理解为什么这是一个大问题,需要注意的是Git的许多部分都不是用便携式C编写的,而是Git依赖于POSIX shell和Perl可用.
为了支持脚本,Git for Windows必须发布一个带有Bash和Perl的最小POSIX仿真层,当Git for Windows工作于2007年8月开始时,这个开发人员决定使用MSys,一个精简的Cygwin版本.
因此,该项目的原始名称是"msysGit"(遗憾的是,由于很少有Windows用户知道MSys,甚至更少关心,因此引起了很多混乱).为了编译Git for Windows的C代码,也使用了MSys:它运行两个版本的GNU C编译器:
- 一个隐式链接到POSIX仿真层的,
- 另一个针对普通Win32 API(带有一些便利函数).
Git for Windows的可执行文件是使用后者构建的,因此它们实际上只是Win32程序.为了识别需要POSIX仿真层的可执行文件,当前者被称为MSys可执行文件时,后者被称为MinGW(Windows的Minimal GNU).
这种对MSys的依赖也带来了挑战:
- 我们对MSys运行时的一些更改 - 更好地支持Git for Windows所必需的 - 在上游不被接受,所以我们必须维护自己的fork.
- 此外,MSys运行时没有进一步开发以支持例如UTF-8或64位,并且除了缺少包管理系统直到很久以后(
mingw-get引入时),MSys/MinGW项目提供的许多包滞后于各自源代码版本,特别是Bash和OpenSSL.有一段时间,Git for Windows项目试图通过尝试构建这些软件包的更新版本来解决这种情况,但这种情况很快就变得难以理解,特别是像Heartbleed bug这样的问题需要迅速采取与开发Git无关的问题. Windows进一步.
令人高兴的是,与此同时出现了MSys2项目(https://msys2.github.io/),并被选为Windows 2.x的Git基础.
就像MSys一样,MSys2是Cygwin的精简版,但它与Cygwin的源代码保持同步.
因此,它已经在内部支持Unicode,并且它还提供了自Git for Windows项目开始以来我们渴望的64位支持.MSys2还从Arch Linux移植了Pacman包管理系统并大量使用它.这为Linux用户提供了相同的便利,
yum或者使用apt-getMacOSX用户从Homebrew或MacPorts或者来自Ports系统的BSD用户到MSys2:简单的pacman -Syu将所有已安装的软件包更新到最新版本目前可用.MSys2也非常活跃,通常每周多次提供包更新.
它仍然需要两个月的努力才能将所有内容带到Git测试套件通过的状态,直到第一个官方Git for Windows 2.x发布之前还有几个月,还有一些补丁还在等待他们提交给各自的上游项目.然而,如果没有MSys2,Git for Windows的现代化根本就不会发生.
此提交为支持基于MSys2的Git构建奠定了基础.
在评论中,问题是在2016年1月提出的:
由于Git for Windows已基于MSYS2,因此不依赖于仿真层的二进制文件是否可用作MSYS2包?
Ray Donnelly当时回答:
我们还没有完全合并,没有.我们正在努力.
但是...... madz 指出,在2017年初,这种努力并没有成功.
看到:
问题是我无法提供将导致新的msys2-runtime及时更改的更改.
但不是一个大问题:我只是让Git for Windows的分支无限期地运行.
维基因此现在提到(2018年):
Git for Windows为msys2-runtime创建了一些尚未向上游发送的补丁.(这已经计划好了,但在问题#284中确定它可能不会发生.)
这意味着你必须安装Git for Windows自定义msys2-runtime才能在MSYS2中拥有一个完全正常工作的git.
rai*_*tin 10
我对它们之间联系的理解是
| 归档时间: |
|
| 查看次数: |
35965 次 |
| 最近记录: |