MSYS2

最后更新:

官网

换源

1
sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*

MSYS2中MINGW_PACKAGE_PREFIX对应关系

Name MINGW_PACKAGE_PREFIX
MSYS None
MINGW64 mingw-w64-x86_64-
UCRT64 mingw-w64-ucrt-x86_64-
CLANG64 mingw-w64-clang-x86_64-
MINGW32 mingw-w64-i686-
CLANG32 mingw-w64-clang-i686-
CLANGARM64 mingw-w64-clang-aarch64-

安装记录

安装工具链

  • pacman -S mingw-w64-x86_64-toolchain
  • pacman -S mingw-w64-ucrt-x86_64-toolchain
  • pacman -S mingw-w64-clang-x86_64-toolchain
  • pacman -S mingw-w64-i686-toolchain
  • pacman -S mingw-w64-clang-i686-toolchain
  • pacman -S mingw-w64-clang-aarch64-toolchain
  • pacman -S $MINGW_PACKAGE_PREFIX-toolchain

安装Qt5库

  • pacman -S mingw-w64-x86_64-qt5-static
  • pacman -S mingw-w64-ucrt-x86_64-qt5-static
  • pacman -S mingw-w64-clang-x86_64-qt5-static
  • pacman -S mingw-w64-i686-qt5-static
  • pacman -S mingw-w64-clang-i686-qt5-static
  • pacman -S mingw-w64-clang-aarch64-qt5-stat
  • pacman -S $MINGW_PACKAGE_PREFIX-qt5-static

安装Qt6库

  • pacman -S mingw-w64-ucrt-x86_64-qt6-static

仅安装编译工具

  • pacman -S mingw-w64-ucrt-x86_64-gcc
  • pacman -S mingw-w64-x86_64-gcc
  • pacman -S mingw-w64-i686-gcc
  • pacman -S mingw-w64-clang-x86_64-gcc
  • pacman -S mingw-w64-clang-i686-gcc

安装make

  • pacman -S mingw-w64-ucrt-x86_64-make
  • pacman -S mingw-w64-clang-x86_64-make

安装GDB

  • pacman -S mingw-w64-ucrt-x86_64-gdb
  • pacman -S mingw-w64-clang-x86_64-lldb

仅MSYS2环境下的工具安装

pacman -S binutils //二进制工具集
pacman -S gcc //GNU编译器集合-C和C++前端
pacman -S gcc-libs //GCC提供的运行时库 pacman -S gdb //GNU调试器
pacman -S gettext //GNU国际化库
pacman -S gettext-devel //GNU国际化开发实用程序
pacman -S make //make工具

安装其他

  • pacman -S base //Minimal package set to define a basic MSYS2 installation
  • pacman -S base-devel //Minimal package set for building packages with makepkg
  • pacman -S vim
  • pacman -S yasm
  • pacman -S nasm

备注

MSYS2中有两种工具链:

  • 一种是原生GCC,其编译的是UNIX代码,运行依赖msys2xxx.dll;
  • 一种是mingw工具链,用于编译windows代码(能调用windows API,不能调用unix系统调用)的, 生成exe,运行时只依赖windows系统的dll。

更新和维护MSYS2

通过安装程序或其他方式安装 MSYS2 后,您需要继续使用内置工具对其进行更新。MSYS2 是一个滚动发布发行版,仅支持完整的系统升级,这意味着各种软件包经常进行次要和主要更新,并且您只能一次更新所有软件包。 若要更新所有包,请运行以下命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ pacman -Suy
:: Synchronizing package databases...
 mingw32 is up to date
 mingw64 is up to date
 ucrt64 is up to date
 clang32 is up to date
 clang64 is up to date
 msys is up to date
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
 there is nothing to do

在某些情况下,某些核心软件包会被更新,pacman 会提示你关闭所有终端:

1
2
:: To complete this update all MSYS2 processes including this terminal will be closed.
   Confirm to proceed [Y/n]

确认后,您需要启动一个新终端并再次运行更新,以更新剩余的非核心包。pacman -Suy

其他命令参考

1. 安装软件

  • pacman -S 软件名: 安装软件。也可以同时安装多个包,只需以空格分隔包名即可。
  • pacman -S –needed 软件名1 软件名2: 安装软件,但不重新安装已经是最新的软件。
  • pacman -Sy 软件名:安装软件前,先从远程仓库下载软件包数据库(数据库即所有软件列表)。
  • pacman -Sv 软件名:在显示一些操作信息后执行安装。
  • pacman -Sw 软件名: 只下载软件包,不安装。
  • pacman -U 软件名.pkg.tar.gz:安装本地软件包。
  • pacman -U http://www.example.com/repo/example.pkg.tar.xz : 安装一个远程包(不在 pacman 配置的源里面)。

2. 更新系统

  • pacman -Sy: 从服务器下载新的软件包数据库(实际上就是下载远程仓库最新软件列表到本地)。
  • pacman -Su: 升级所有已安装的软件包。

3. 卸载软件

  • pacman -R 软件名: 该命令将只删除包,保留其全部已经安装的依赖关系
  • pacman -Rv 软件名: 删除软件,并显示详细的信息
  • pacman -Rs 软件名: 删除软件,同时删除本机上只有该软件依赖的软件。
  • pacman -Rsc 软件名: 删除软件,并删除所有依赖这个软件的程序,慎用
  • pacman -Ru 软件名: 删除软件,同时删除不再被任何软件所需要的依赖

4. 搜索软件

  • pacman -Ss 关键字: 在仓库中搜索含关键字的软件包(本地已安装的会标记)
  • pacman -Sl :显示软件仓库中所有软件的列表。可以省略,通常这样用:pacman -Sl | 关键字
  • pacman -Qs 关键字: 搜索已安装的软件包
  • pacman -Qu: 列出所有可升级的软件包
  • pacman -Qt: 列出不被任何软件要求的软件包

查看软件信息

  • pacman -Q 软件名: 查看软件包是否已安装,已安装则显示软件包名称和版本
  • pacman -Qi 软件名: 查看某个软件包信息,显示较为详细的信息,包括描述、构架、依赖、大小等等
  • pacman -Ql 软件名: 列出软件包内所有文件,包括软件安装的每个文件、文件夹的名称和路径

5. 软件包组

pacman -Sg: 列出软件仓库上所有的软件包组 pacman -Qg: 列出本地已经安装的软件包组和子包 pacman -Sg 软件包组: 查看某软件包组所包含的所有软件包 pacman -Qg 软件包组: 和pacman -Sg 软件包组完全一样

6. 清除缓存

  • pacman -Sc:清理未安装的包文件,包文件位于 /var/cache/pacman/pkg/ 目录。

  • pacman -Scc:清理所有的缓存文件。

    pacman 安装包缓存位置及清理
    如果进行系统更新时,磁盘不足,清理软件安装包缓存是一种可行的方案.
    pacman 会将自己下载的软件压缩包保存在 /var/cache/pacman/pkg/目录下,
    默认情况下并不会删除安装包,即便软件已经卸载.
    下面提供几个清理程度不同的命令.

  • paccache -r # 清理缓存,仅包含最近的三个版本

  • paccache -rk1 # 清理缓存,仅包含最近的1个版本

  • pacman -Sc # 清理未安装软件包

  • pacman -Scc # 清理缓存中所有内容

     转载说明:请附上本文链接及上述版权声明。