msys2使用说明
介绍
MSYS2 是一个基于 Cygwin 的软件分发和构建平台,它提供了一个类 Unix 环境,使得开发者能够在 Windows 系统上运行和编译基于 Unix 的应用程序。MSYS2 配备了包管理器(pacman),它来自 Arch Linux,提供了安装、更新和管理软件包的便捷方式。以下是一些 MSYS2 的具体用途示例:
- 编译软件:MSYS2 可以编译许多只能在 Linux 环境中编译的软件,如使用 GCC 或 Clang 编译器的 C/C++ 项目。
- 运行 Unix 命令:MSYS2 提供了许多 Unix 命令行工具,如 Bash、grep、sed 和 awk,可以在 Windows 上执行这些工具。
- 开发跨平台软件:开发者可以使用 MSYS2 来开发和测试在 Windows 和 Unix 系统上都能运行的软件。
- 管理依赖:通过 pacman 包管理器,用户可以容易地安装、更新和管理依赖库和工具,支持大量开源软件和库的安装。
- 创建包:开发者可以使用 MSYS2 制作和维护自己的软件包,使得软件部署和分发更为方便。
- 脚本和自动化:MSYS2 提供了强大的 shell 环境,支持编写和运行 shell 脚本来自动化各种任务。
通过这些功能,MSYS2 成为了开发者在 Windows 环境中进行 Unix 风格开发的有力工具。
包含子环境
clang32
clang64
mingw32
mingw64
msys
ucrt64
如果需要确保应用程序在不同版本的Windows上都有良好的兼容性,特别是在新的Windows系统上,ucrt64
可能是更好的选择。如果对兼容性的要求不那么高,或者已经有针对mingw64
的特定优化,那么使用mingw64
也很有意义。
通常在windows使用ucrt64就可以了
pacman
更新软件包数据库
Pacman 是一个命令行的包管理器,广泛使用在 Arch Linux 及其衍生系统如 Manjaro 和 MSYS2 中。它主要用于安装、更新、搜索和管理软件包。这里给出了一些基本的 Pacman 命令,可以帮助你在使用 MSYS2 或类似系统时管理软件包:
包的数量
1 | pacman -Sl | wc -l |
1. 更新软件包数据库
1 | pacman -Sy |
这个命令将同步包数据库,这是安装或更新软件包之前的一个重要步骤。
2. 升级所有已安装的包
1 | pacman -Syu |
这个命令首先同步包数据库,然后升级所有已安装的包到最新版本。
3. 安装软件包
1 | pacman -S package_name |
使用这个命令来安装名为 package_name
的包。
4. 搜索软件包
1 | pacman -Ss search_term |
这个命令搜索所有与 search_term
相关的包。
5. 查看已安装的软件包
1 | pacman -Q |
这个命令列出所有已安装的包。
6. 查看特定软件包的详细信息
1 | pacman -Qi package_name |
查看已安装的 package_name
软件包的详细信息。
7. 删除软件包
1 | pacman -R package_name |
删除名为 package_name
的包。如果要包括依赖(那些不再被其他已安装软件包所需的依赖),可以使用 -Rs
。
8. 清除未使用的包(孤立包)
1 | pacman -Rns $(pacman -Qdtq) |
这个命令将移除所有没有其他包依赖的孤立软件包。
9. 清理缓存
1 | pacman -Sc |
这个命令清理掉旧版本的包缓存,释放磁盘空间。如果你想彻底清理所有缓存,包括当前安装的版本,可以使用 pacman -Scc
,但这通常不推荐。
这些是 Pacman 包管理器的一些基本使用方法。在实际操作中,你可能需要根据你的具体需求调整命令或查看更多的选项和参数。
让pacman优先使用国内镜像
pacman
默认优先使用MSYS2官方源,在国内的速度可能比较慢,可以考虑修改配置让它优先使用国内的镜像(比如科大或者清华的)。
去%MSYS2%\etc\pacman.d
路径下,找到mirrorlist.<子环境>
文件,然后把其中USTC或者TUNA的链接移到最上方即可。
例如,将Server = https://mirrors.***.edu.cn/msys2/mingw/ucrt64/
移到mirrorlist.ucrt64
的最上方,即可让UCRT64子环境的包优先使用科大镜像下载。
在pacman -Ss
中屏蔽掉不想要的子环境
打开%MSYS2%/etc/pacman.conf
,到最下面用#
注释掉不想要的子环境源。
1 | # 如果不想在pacman -Ss里看到mingw32环境的包 |
安装特定包
重要
1 | pacman -S ucrt64/mingw-w64-ucrt-x86_64-boost |
1 | pacman -S mingw-w64-ucrt-x86_64-toolchain |
pacman -S cmake
安装的是MSYS子环境的cmake
要安装ming64子环境下的cmake,则应该是
1 | pacman -S mingw-w64-x86_64-cmake |