跳到主要内容

MSYS2教程


MSYS2教程


一、安装 MSYS2

  1. 下载 MSYS2 安装程序
    • 访问 MSYS2 官方网站:MSYS2 官网。
    • 下载适合你的系统的 MSYS2 安装程序(通常是 64 位版本)。
  2. 安装 MSYS2
    • 运行下载的安装程序。
    • 按照提示完成安装,建议将 MSYS2 安装到 C:\msys64 等不包含空格或特殊字符的路径。
    • 安装完成后,点击 Finish。
  3. 初始化 MSYS2 环境
    • 安装完成后通常会直接启动 UCRT64 环境;现在不确定选哪个环境时,优先使用 UCRT64。
    • 先完整更新系统:
      pacman -Syu
      • 如果核心组件更新后提示关闭终端,关闭所有 MSYS2 窗口,重新打开 UCRT64 后再次执行:
        pacman -Syu

二、将 MSYS2 添加到终端

  1. 为 Windows Terminal 添加配置
    运行 Windows Terminal 后,按照下面步骤新增 Msys2 shell
    • 点击标题栏右边的向下指示符,选择 Settings
    • 左边侧栏,下边,点击 Add a new profile
    • 选择一个已经存在的 shell,点击 Duplicate,即基于原存 shell 创建新 shell
    • 主要设置项
      • Name: 如 MSYS2 UCRT64
      • Command line: C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64
      • Starting directory: C:/msys64/home/%USERNAME%
      • Icon: C:/msys64/msys2.ico
    • 点击 Save 保存
    • 需要其他环境时,再把最后的 -ucrt64 换成对应参数,例如 -clang64。旧的 MINGW64 正在逐步弃用,新配置不建议再把它作为默认环境。
  2. 为 VS Code 配置终端
    • 打开 VS Code,按 Ctrl + Shift + P 打开命令面板,选择 “Preferences: Open Settings (JSON)”。
    • 添加以下内容:
      "terminal.integrated.profiles.windows": {
        "MSYS2 UCRT64": {
          "path": "C:/msys64/msys2_shell.cmd",
          "args": ["-defterm", "-here", "-no-start", "-ucrt64"]
        }
      },
      "terminal.integrated.defaultProfile.windows": "MSYS2 UCRT64"
  3. 从 Windows 终端调用 MSYS2 工具
    • 不建议默认把 C:\msys64\usr\bin 整体加入系统 Path。其中很多程序属于 MSYS/Cygwin 环境,和原生 Windows 工具混用可能出现路径转换、命令覆盖等问题。
    • 平时直接通过 UCRT64 / MSYS2 终端使用最稳。如果只是想从 CMD 或 PowerShell 调用某个原生工具,可按实际需要添加对应环境的 bin,例如 UCRT64 的 C:\msys64\ucrt64\bin,并避免同时混入多套 MSYS2/Cygwin 工具链。

三、MSYS2 基础操作

MSYS2 现在常用的环境主要有:

  • MSYS:提供 Bash、pacman、makepkg 等 Unix 风格工具,本身不是首选的原生 Windows 编译环境。
  • UCRT64:当前默认推荐,使用 GCC + UCRT,普通 64 位 Windows 开发优先选它。
  • CLANG64:使用 LLVM/Clang + UCRT。
  • CLANGARM64:面向 Windows ARM64。

旧的 MINGW64 正在逐步弃用,MINGW32 也已进入 32 位环境淘汰阶段,新项目不建议再把它们作为默认选择。

常见命令

  1. 切换到 MSYS 环境:
    msys2_shell.cmd -msys
  2. 切换到 UCRT64 环境:
    msys2_shell.cmd -ucrt64
  3. 切换到 CLANG64 环境:
    msys2_shell.cmd -clang64

四、MSYS2 包管理

MSYS2 使用 pacman 包管理器来管理软件包。常用命令如下:

1. 更新系统

更新软件包数据库并升级所有包:

pacman -Syu

2. 搜索包

搜索某个软件包:

pacman -Ss <包名>

例如,搜索 gcc:

pacman -Ss gcc

3. 安装包

安装某个软件包:

pacman -S <包名>

例如,安装 gcc:

pacman -S mingw-w64-ucrt-x86_64-gcc

4. 卸载包

卸载某个软件包:

pacman -R <包名>

例如,卸载 gcc:

pacman -R mingw-w64-ucrt-x86_64-gcc

5. 查看已安装包

查看已安装的软件包:

pacman -Q

6. 清理缓存

清理过时的缓存:

pacman -Sc

7. 升级或者降级本地文件安装的包

如果存储库中没有合适的旧版本,您可以通过以下方式获取旧版本:

  1. 访问 MSYS2 包存储库MSYS2 包存储库。
  2. 搜索 openssl。
  3. 找到适合的版本(例如 1.1.x)。
  4. 下载 .pkg.tar.zst 文件。
pacman -U <文件路径>

从本地文件安装或升级软件包。
例如:

pacman -U /path/to/package.pkg.tar.zst

如果仓库里没有需要的版本,也可以按对应项目自己的源码编译说明操作,但不要把某个项目的 ./config --prefix=... 当成所有软件通用步骤。使用 UCRT64 时,原生软件通常安装到 /ucrt64 前缀;具体构建命令以项目文档为准。

8. 查看依赖链

查看哪些软件包依赖于 mingw-w64-ucrt-x86_64-openssl:

pactree -r mingw-w64-ucrt-x86_64-openssl

9. 强制卸载

-Rdd 会跳过依赖检查,只删除指定包,不会连带删除依赖它的软件。这可能使现有软件无法运行,不应作为解决版本冲突的常规方法。

pacman -Rdd mingw-w64-ucrt-x86_64-openssl

10. 卸载相关依赖

卸载所有依赖软件(如 mingw-w64-ucrt-x86_64-python):

pacman -Rns mingw-w64-ucrt-x86_64-python

五、安装开发工具示例

安装 GCC 编译器

  1. 安装 GCC:
    pacman -S mingw-w64-ucrt-x86_64-gcc
  2. 验证安装:
    gcc --version

如果你希望在 CMD 或 PowerShell 中直接使用 GCC:

  1. 打开系统的环境变量设置。
  2. 将以下路径添加到用户 Path:C:\msys64\ucrt64\bin。只在确实需要从 CMD/PowerShell 直接调用 UCRT64 原生程序时添加。
  3. 保存后,打开 CMD 或 PowerShell,运行:
    gcc --version

安装 Python

  1. 安装 Python:
    pacman -S mingw-w64-ucrt-x86_64-python
  2. 验证安装:
    python --version

安装 Node.js

  1. 安装 Node.js:
    pacman -S mingw-w64-ucrt-x86_64-nodejs
  2. 验证安装:
    node --version

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
赏
评论

评论将在接近此处时加载,也可点击立即加载。

  目录