无法安装C编译器:Msys2中PGP密钥远程查找失败求助
解决Msys2中Pacman无法导入PGP密钥的问题
以下是几种可行的解决方法,按推荐优先级排序:
1. 手动导入目标PGP密钥
直接通过gpg命令手动获取并导入密钥,绕开pacman自动查找的问题:
- 打开Msys2终端,执行:
gpg --keyserver hkps://keys.openpgp.org --recv-keys 5F944B027F7FE2091985AA2EFA11531AA0AA7F57 - 如果上述密钥服务器连接失败,换用其他服务器,比如:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 5F944B027F7FE2091985AA2EFA11531AA0AA7F57 - 导入成功后,重新执行你的安装命令:
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
2. 更换Msys2镜像源(解决网络导致的密钥获取失败)
国内网络连接默认Msys2源可能不稳定,更换为国内镜像可以提升密钥和包的下载速度:
- 编辑Msys2的镜像配置文件,比如针对mingw64的镜像:
nano /etc/pacman.d/mirrorlist.mingw64 - 在文件最顶部添加国内镜像地址(以清华镜像为例):
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/ - 同理,更新msys源的配置文件
/etc/pacman.d/mirrorlist.msys,添加:Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch/ - 保存文件后,执行源更新命令:
pacman -Sy - 最后重新执行安装命令。
3. 临时跳过密钥验证(仅应急使用)
不推荐长期使用,会降低系统安全性,但可以作为临时解决办法:
- 编辑pacman配置文件:
nano /etc/pacman.conf - 找到包含
SigLevel的行,将其修改为:SigLevel = Never - 保存后执行安装命令,完成后记得改回原来的
SigLevel设置(通常是SigLevel = Required DatabaseOptional)。
内容的提问来源于stack exchange,提问作者DevTaurus
相关产品推荐
相关产品推荐

