1. 介绍
该脚本是一款针对 MSYS2 MinGW 64-bit 环境 的一键部署脚本,核心目标是快速搭建包含 C/C++ 编译环境、Python2、Python3 及相关依赖工具的开发环境,全程自动化执行,无需手动干预。
2. 注意事项
网络要求: 执行前需保证网络通畅,脚本依赖网络下载系统包和 Python2 离线包;
权限要求: 需以足够权限运行(如 MSYS2 终端默认权限),避免文件读写 / 安装失败;
环境唯一性: 仅适用于 MSYS2 MinGW 64-bit,32 位或其他 Linux 子系统(如 WSL)不兼容;
Python2 版本: 固定为 2.7.18,是 Python2 的最终稳定版,满足老旧项目的兼容需求。
系统更新: 如果经常更新系统基础包,请注意使用安装脚本里的 pacman -Syu --ignore=mingw-w64-x86_64-python2 --noconfirm 该条命令进行更新,防止 Python2 其被系统更新删除。
如果想下载其他包,各位可自行在 MSYS2 的源中进行查找,或者换成自行替换为其他的镜像源,我在为各位提供了 MSYS2 的源的下来链接,可以自己点击 CTRL+F 进行网页搜索,可能因为 MSYS2 资源网站资源有点多所以会有些卡顿
3. 安装脚本
该脚本只需要运行 MSYS2 MINGW64 创建一个脚本,运行即可
shell
#!/bin/bash
# MSYS2 一键部署脚本
# 功能:安装 C/C++ 编译环境、Python2、Python3 及所有依赖工具
# 适用环境:MSYS2 MinGW 64-bit
# 注意:执行前请确保网络正常,脚本会自动下载并安装所有包
# 遇到错误立即退出脚本,保证执行安全
set -e
# 清屏优化输出
clear
# ==============================================
# 阶段 1:更新系统(不升级 Python2,避免被删除)
# ==============================================
echo "============================================="
echo " 正在更新系统基础包..."
echo "============================================="
pacman -Syu --ignore=mingw-w64-x86_64-python2 --noconfirm
# ==============================================
# 阶段 2:安装 C/C++ 编译工具链
# ==============================================
echo -e "\n============================================="
echo " 正在安装 C/C++ 开发工具(gcc/gdb/make/cmake)"
echo "============================================="
pacman -S --noconfirm \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-gdb \
mingw-w64-x86_64-make \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-binutils \
base-devel
echo " 准备 Windows 使用的 make 工具"
cp /mingw64/bin/mingw32-make.exe /mingw64/bin/make.exe
# ==============================================
# 阶段 3:安装 Python3 环境
# ==============================================
echo -e "\n============================================="
echo " 正在安装 Python3 环境"
echo "============================================="
pacman -S --noconfirm \
mingw-w64-x86_64-python \
mingw-w64-x86_64-python-pip \
mingw-w64-x86_64-python-setuptools \
mingw-w64-x86_64-python-wheel
# ==============================================
# 阶段 4:下载 Python2 全套离线包
# ==============================================
echo -e "\n============================================="
echo " 正在下载 Python2.7.18 相关包"
echo "============================================="
cd ~
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-2.7.18-8-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-pip-20.3.4-1-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-setuptools-44.1.1-2-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-cairo-1.18.2-4-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-gobject-3.34.0-4-any.pkg.tar.xz
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-pygobject2-devel-2.28.7-5-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-gobject2-2.28.7-5-any.pkg.tar.zst
wget https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-pygtk-2.24.0-8-any.pkg.tar.zst
# ==============================================
# 阶段 5:安装 Python2 及 GUI 依赖
# ==============================================
echo -e "\n============================================="
echo " 正在安装 Python2 及 GUI 组件"
echo "============================================="
pacman -U --noconfirm \
mingw-w64-x86_64-python2-*.pkg.tar.zst \
mingw-w64-x86_64-python2-*.pkg.tar.xz \
mingw-w64-x86_64-pygobject2-devel-*.pkg.tar.zst
# ==============================================
# 阶段 6:清理安装包,释放空间
# ==============================================
echo -e "\n============================================="
echo " 清理安装包文件"
echo "============================================="
rm -f ~/*.pkg.tar.zst ~/*.pkg.tar.xz
# ==============================================
# 阶段 7:锁定 Python2,防止系统更新删除
# ==============================================
echo -e "\n============================================="
echo " 锁定 Python2 包,防止被更新卸载"
echo "============================================="
sed -i '/^IgnorePkg/ s/$/ mingw-w64-x86_64-python2/' /etc/pacman.conf
# ==============================================
# 阶段 8:输出版本信息,验证安装结果
# ==============================================
echo -e "\n============================================="
echo " 安装完成!当前环境版本信息"
echo "============================================="
echo -e "\n--- C/C++ 工具 ---"
gcc --version | head -n 1
make --version | head -n 1
echo -e "\n--- Python 版本 ---"
python2 --version
python3 --version
echo -e "\n--- PIP 版本 ---"
pip2 --version | head -n 1
pip3 --version | head -n 1
echo -e "\n============================================="
echo " ✅ 所有环境部署成功!"
echo "============================================="