msys2配置

配置国内镜像

国内镜像战有中科大的源和清华的源,中科大是http,清华是https,所以我选用了清华的。

我的配置原则是删除默认全部,只保留国内镜像一条。

编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

然后执行 pacman -Sy 刷新软件包数据即可。

msys2系统更新

pacman -Syu
  • 更新时会遇到警告,根据警告信息提示,我们可以关闭窗口
  • 点击关闭窗口按钮后会弹出一个警告框提示,提示信息是窗口会话有进程正在运行,这里不用管,点OK就行。

到这里更新并没有结束,重复配置源部分,再打开msys2进行更新即可。

密钥失效问题

使用pacman -Syu时显示无法远程查找到密钥。

错误原因

密钥无法信赖(rely on)msys2-keyring密钥服务器,如果不及时更新msys2-keyring,就会出现上面的错误提示。

修复办法:

msys2官方提供了一个msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz的软件包来修复。

修复前验证下(无法通过):

# pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz{.sig,}

开始修复:

  1. 下载 msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz 软件包

    # curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
    # curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig
    
  2. 验证签名是否建立完好

    # pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz{.sig,}
    
  3. 安装 msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz 包

    # pacman -U --config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
    
  4. 然后就可以使用pacman -Syu进行更新

【注1】

如果还存在签名问题导致无法更新,可以尝试重置pacman key

# rm -r /etc/pacman.d/gnupg/

# pacman-key --init

# pacman-key --populate msys2

然后再pacman -Syu进行更新

【注2】

修复完毕后,可能需要重启计算机。

参考文章

解决msys2“无法升级 mingw64 (无效或已损坏的数据库 (PGP 签名))”密钥失效问题

MSYS2使用教程(整理)——win10系统64位安装msys2最新版(msys2-x86_64-20190524.exe)