Windows安装Ruby/Rails遇gem编译错误:yaml.h未找到及pacman问题
解决方案
1. 切换到Ruby自带的MSYS2环境
- 打开Ruby安装时创建的「Start Command Prompt with Ruby」快捷方式,该环境自带pacman等MSYS2工具,普通CMD/PowerShell无法识别
pacman-key命令。 - 若找不到快捷方式,直接定位到Ruby安装目录下的
msys64文件夹(例:C:\Ruby32-x64\msys64),运行其中的msys2_shell.cmd进入MSYS2环境。
2. 修复MSYS2 PGP签名验证问题
- 在MSYS2环境中执行密钥初始化:
pacman-key --init - 重新导入MSYS2官方密钥:
pacman-key --populate msys2 - 若仍存在签名错误,可临时关闭签名验证(仅临时使用):
编辑/etc/pacman.conf文件,找到SigLevel配置行,修改为:
保存后退出编辑。SigLevel = Never
3. 手动安装libyaml依赖包
在MSYS2环境中执行安装命令,确保安装包含头文件的开发版:
pacman -S mingw-w64-ucrt-x86_64-libyaml mingw-w64-ucrt-x86_64-libyaml-devel
安装完成后退出MSYS2环境,回到Ruby命令提示符,重新执行:
gem install rails
4. 备选方案:重装带DevKit的Ruby
- 卸载当前Ruby版本,下载RubyInstaller的Ruby+DevKit版本(如Ruby 3.2.x + DevKit)。
- 安装时勾选「Add Ruby executables to your PATH」,安装完成后执行
ridk install,按照提示完成MSYS2组件的安装,之后再尝试安装rails。
内容的提问来源于stack exchange,提问作者Pratik Vinod
相关产品推荐
相关产品推荐

