Windows环境下搭建Rails应用时Psych依赖安装失败求助
在Windows新电脑上搭建Rails应用时Psych依赖安装失败的解决方法
问题背景
在新Windows电脑上搭建Ruby 3.2.3 + Rails 7.1.3的应用,执行bundle install时遭遇Psych依赖安装失败,尝试过多种方案仍未解决,报错日志如下:
Temporarily enhancing PATH for MSYS/MINGW... Installing required msys2 packages: mingw-w64-ucrt-x86_64-libyaml warning: Public keyring not found; have you run 'pacman-key --init'? error: clangarm64: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: mingw32: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: mingw64: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: ucrt64: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: clang32: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: clang64: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: msys: key "5F944B027F7FE2091985AA2EFA11531AA0AA7F57" is unknown error: keyring is not writable error: database 'clangarm64' is not valid (invalid or corrupted database (PGP signature)) error: database 'mingw32' is not valid (invalid or corrupted database (PGP signature)) error: database 'mingw64' is not valid (invalid or corrupted database (PGP signature)) error: database 'ucrt64' is not valid (invalid or corrupted database (PGP signature)) error: database 'clang32' is not valid (invalid or corrupted database (PGP signature)) error: database 'clang64' is not valid (invalid or corrupted database (PGP signature)) error: database 'msys' is not valid (invalid or corrupted database (PGP signature))
解决方案
核心问题是MSYS2密钥环未初始化、权限不足,以及软件数据库签名验证失败,按以下步骤操作:
- 以管理员身份启动MSYS2终端:找到Ruby安装目录对应的MSYS2终端(可通过RubyInstaller启动菜单打开),右键选择「以管理员身份运行」,确保拥有密钥环写入权限。
- 初始化并更新MSYS2密钥环:在终端依次执行命令:
pacman-key --init pacman-key --populate msys2 pacman -Sy - 手动安装缺失依赖:执行命令安装libyaml包:
pacman -S mingw-w64-ucrt-x86_64-libyaml - 重新执行bundle install:关闭当前终端,打开普通命令提示符或PowerShell,进入项目目录后运行:
bundle install - 若仍失败,重置MSYS2数据库:删除数据库缓存后重新更新:
rm -rf /var/lib/pacman/sync/* pacman -Sy
内容的提问来源于stack exchange,提问作者hardik
相关产品推荐
相关产品推荐

