当前位置: 首页 > news >正文

MSYS2的C/C++,python2,python3编译环境安装脚本

1. 介绍

该脚本是一款针对MSYS2 MinGW 64-bit环境 的一键部署脚本,核心目标是快速搭建包含C/C++编译环境、Python2Python3及相关依赖工具的开发环境,全程自动化执行,无需手动干预。

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创建一个脚本,运行即可

#!/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-develecho" 准备 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~wgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-2.7.18-8-any.pkg.tar.zstwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-pip-20.3.4-1-any.pkg.tar.zstwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-setuptools-44.1.1-2-any.pkg.tar.zstwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-cairo-1.18.2-4-any.pkg.tar.zstwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-gobject-3.34.0-4-any.pkg.tar.xzwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-pygobject2-devel-2.28.7-5-any.pkg.tar.zstwgethttps://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-python2-gobject2-2.28.7-5-any.pkg.tar.zstwgethttps://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-n1make--version|head-n1echo-e"\n--- Python 版本 ---"python2--versionpython3--versionecho-e"\n--- PIP 版本 ---"pip2--version|head-n1pip3--version|head-n1echo-e"\n============================================="echo" ✅ 所有环境部署成功!"echo"============================================="
http://www.cnnetsun.cn/news/2052042.html

相关文章:

  • Faster R-CNN里的RPN网络到底在干嘛?用大白话和代码图解锚框生成与训练
  • Linux文件系统(一):从磁盘结构到文件系统基础
  • 解锁学术新次元:书匠策AI——期刊论文写作的“魔法宝盒”
  • 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,双芯联动重塑AI工作站格局
  • DC6靶机的渗透测试与复盘
  • 终极指南:HTTrack网站镜像工具完整使用教程
  • 把远端数据当本地数据来查, 读懂 SAP HANA 里的 Federating Queries
  • FlicFlac音频转换工具:5个关键特性解析与技术实现
  • VSCode 2026工业编程配置必须做的7件事,第4件92%工程师至今忽略——否则无法通过IEC 62443安全审计
  • 从AK4490到ES9038:聊聊那些年我们用过的DAC芯片,以及它们背后的声音故事
  • 别再傻傻分不清了!Modbus RTU、TCP、RTU over TCP/IP 三兄弟到底啥区别?用Java代码实战给你讲明白
  • 西门子WinCC报表实战:手把手教你用用户归档+SQL Server实现数据查询与打印(附避坑指南)
  • 2026年转行AI产品经理,0基础小白必看!高薪风口,你准备好了吗?
  • 深度解析开源工具:如何高效实现《赛博朋克2077》存档编辑与数据修改
  • BBS短群签名方案:从q-SDH假设到可追踪匿名认证
  • Linux 进阶命令实战:sudo 授权、文件查找、文本处理与进程管理
  • Qt串口通信GUI卡顿?试试把QSerialPort丢到子线程里(附完整代码)
  • 从外网打到内网:手把手教你用MSF+Socks代理穿透CFS三层靶机网络
  • 生成引擎优化(GEO)提升数字内容互动与用户体验的新策略
  • 保姆级教程:在Ubuntu 22.04上搞定ROS2 Humble与速腾16线雷达的驱动配置
  • 策略模式的思想的经典案例分析
  • Vivado BD 地址位宽校验失败深度解析:从 [IP_Flow 19-3478] 错误到 AXI 总线对齐原则
  • Jellyfin Kodi插件终极指南:打造无缝跨设备媒体体验
  • 撕下“被动应答”的伪装:清华等团队开源 PASK,AI 终于长出了“眼力见”与“长期记忆”!
  • Star 11.5k 开源的网络钓鱼平台 gophish
  • 从《原神》到Matlab:我是如何用TheColor工具箱自制一套67角色配色包的(附源码思路)
  • 开源神器Serial Studio实战:如何用它的CSV导出和网络功能,做自动化测试报告?
  • CodeCombat游戏化编程学习终极指南:用游戏思维掌握代码技能
  • Docker 27安全扫描零配置接入,5分钟完成SBOM生成+OSV漏洞匹配+自动阻断策略部署
  • 3步彻底清理Mac残留文件:Pearcleaner让你的Mac重获新生