msys2是Windows上模仿linux环境的一套工具。和Cygwin相比,msys2更原生一些。Git for Windows就是在msys2环境中工作的。
安装
- 安装
- 到msys2页面下载安装器,有80多兆。默认安装到
C:\msys2
。 - 设置国内镜像
https://mirrors.cloud.tencent.com/help/msys2.html
,然后执行pacman -Sy
刷新。
- 到msys2页面下载安装器,有80多兆。默认安装到
文档
- What is MSYS2?
- MSYS2 vs Other Projects
- MSYS2 vs WSL
- msys2产生的是原生的程序
- MSYS2 vs Chocolatey
- MSYS2 vs Cygwin
- msys2偏向于使用Windows API
- MSYS2 vs Arch Linux
- 包管理器pacman来自于Arch Linux
- MSYS2 vs Scoop
- MSYS2 vs WSL
- MSYS2 vs Other Projects
- Environments
- Overview
- 有几种环境变量的设定,不确定的话,使用UCRT64。
- MSYS提供unix-like的,基于cygwin的工具(在
/usr
),是所有其他环境的基础。工具链为gcc,C库为cygwin,C++库为libstdc++ - UCRT64,前缀
/ucrt64
,工具链为gcc,C库为ucrt,C++库为libstdc++ - CLANG64,前缀
/clang64
,工具链为llvm,C库为ucrt,C++库为libc++ - CLANGARM64,……
- CLANG32,……
- MINGW64,前缀
/mingw64
,工具链为gcc,C库为msvcrt,C++库为libstdc++ - MINGW32,……
- MSYS提供unix-like的,基于cygwin的工具(在
- 生效的环境根据
MSYSTEM
来选择,比如将MSYSTEM设为UCRT64
- 有几种环境变量的设定,不确定的话,使用UCRT64。
- GCC vs LLVM/Clang(略)
- MSVCRT vs UCRT
- UCRT较新,但是只在Win10及以后的Windows版本上才有
- Overview
- Updating MSYS2
pacman -Suy
paccache -r
- Terminals
- Mintty(默认自带的)
- Windows Terminal,UCRT的示例如下
参考https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-settings
{ "guid": "{17da3cac-b318-431e-8a3e-7fcdefe6d114}", "name": "UCRT64 / MSYS2", "commandline": "C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64", "startingDirectory": "C:/msys64/home/%USERNAME%", "icon": "C:/msys64/ucrt64.ico", "font": { "face": "Lucida Console", "size": 9 } }
- Package Management
- Filesystem Paths
- (过)
- Languages & Tools
- Git
- 默认只提供基于cygwin的git
- 想安装Git for windows的话,参考https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper
- Git
其他
- StackOverflow
- msys2: not finding windows programs despite (MSYS2_PATH_TYPE = inherit)
- 在命令行加参数:
msys2_shell.cmd -use-full-path
- 在
ini
中(比如msys2.ini)设置:MSYS2_PATH_TYPE=inherit
- 在命令行加参数:
- How to change HOME directory and start directory on MSYS2?
- 修改
/etc/nsswith.conf
,- 改成
db_home: windows
- 改成
- 另一个做法是将
startingDirectory
改成"C:/Users/%USERNAME%"
。 - 若安装了zsh,可以将db_shell改成zsh所在的路径
- 修改
- msys2: not finding windows programs despite (MSYS2_PATH_TYPE = inherit)