Windows环境下升级psych 5.0.0构建Gem原生扩展失败求助
解决Windows下升级psych 5.0.0时原生扩展构建失败的问题
错误原因
报错里的yaml.h not found是核心问题——psych 5.0.0需要编译原生扩展,依赖libyaml的开发头文件和库,而你的Windows Ruby环境里没有安装这个依赖。
解决步骤
打开MSYS2终端:
找到Ruby安装目录下的msys2/msys2_shell.cmd(比如C:/Ruby31-x64/msys2/msys2_shell.cmd)双击启动;或者从开始菜单里匹配Ruby架构的MSYS2终端(x64 Ruby选x86_64版本)。更新MSYS2包源:
在终端里执行:pacman -Syu如果终端提示关闭窗口,直接关闭后重新打开终端,再执行一次:
pacman -Su安装libyaml开发库:
针对你的x64 Ruby,执行:pacman -S mingw-w64-x86_64-libyaml若是32位Ruby,替换为
mingw-w64-i686-libyaml。重新安装psych 5.0.0:
回到CMD或PowerShell,执行:gem install psych -v 5.0.0
补充说明
gem update和gem pristine --all仅处理gem本身的缓存、更新或重置,无法解决编译原生扩展所需的系统依赖问题,这类问题必须安装对应的开发库才能解决。
内容的提问来源于stack exchange,提问作者Ioannis
相关产品推荐
相关产品推荐

