Ruby on Rails执行bundle install抛出mingw32错误如何解决
错误诱因
你遇到的报错本质是Windows环境下Ruby绑定的MSYS2开发工具链的包管理器pacman密钥环未初始化、权限不足导致签名验证失败,和你单独安装的sqlite3无关。bundle install安装带原生扩展的gem时需要调用MSYS2拉取依赖,密钥验证失败会直接阻断原生扩展编译流程,最终触发Gem::Ext::BuildError。
解决步骤
- 第一步:找到Ruby安装目录下绑定的MSYS2终端,右键选择以管理员身份运行,解决「密钥环不可写」的权限问题
- 第二步:依次执行以下命令完成密钥环初始化与更新:
- 初始化密钥环:
pacman-key --init - 导入MSYS2官方基础密钥:
pacman-key --populate msys2 - 手动导入报错中缺失的指定密钥:
pacman-key --recv-keys 5F944B027F7FE2091985AA2EFA11531AA0AA7F57 - 本地信任该密钥:
pacman-key --lsign-key 5F944B027F7FE2091985AA2EFA11531AA0AA7F57
- 初始化密钥环:
- 第三步:执行命令更新MSYS2包数据库:
pacman -Syu --noconfirm如果执行过程中提示需要关闭终端重启,按照提示操作后再次执行一次
pacman -Syu --noconfirm即可 - 第四步:回到你的Ruby项目目录,重新运行
bundle install即可正常安装依赖
应急方案
如果上述密钥导入操作持续失败,可以临时关闭PGP签名验证完成安装:
- 打开MSYS2目录下的
/etc/pacman.conf文件 - 找到
SigLevel配置项,将值修改为SigLevel = Never - 重新执行
pacman -Syu和bundle install - 依赖安装完成后记得把配置改回原值,避免后续出现安全风险
内容的提问来源于stack exchange,提问作者mustafa
相关产品推荐
相关产品推荐

