You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Ruby版本后Rails依赖Gem编译失败问题求助

Rails 7升级时bundle install遇Skylight依赖错误的解决方法

问题根源

这个错误出现在Ruby 2.7.4环境下安装skylight-5.0.1时,核心原因是Ruby 2.7默认绑定的Psych库版本与skylight的解析逻辑不兼容,导致Psych::Parser实例缺失parse方法,进而使extconf.rb无法生成Makefile。

分步解决方案

  • 锁定Psych兼容版本
    在Gemfile中添加指定版本的Psych,确保和Ruby 2.7.4兼容:

    gem 'psych', '~> 3.3.2'
    
  • 升级Skylight到适配版本
    skylight-5.0.1对Ruby 2.7的支持存在缺陷,建议升级到5.1及以上版本(已适配Ruby 2.7和Rails 7),修改Gemfile中的对应条目:

    gem 'skylight', '>= 5.1.0'
    
  • 清理缓存并重新安装依赖
    执行以下命令清除旧缓存,避免依赖冲突:

    bundle clean --force
    bundle install
    
  • 确认Ruby环境配置
    验证rbenv本地版本是否生效:

    rbenv version
    

    输出需显示2.7.4 (set by [你的项目路径]/.ruby-version);同时检查gem环境路径:

    gem env home
    

    路径应包含rbenv/versions/2.7.4,确保依赖安装到正确的Ruby版本目录下。

补充排查点

如果执行上述步骤后仍有问题,通过bundle show psych查看当前Psych版本,若未匹配指定的3.3.2版本,执行bundle update psych强制更新该依赖,排除其他gem对旧版本Psych的锁定。

内容的提问来源于stack exchange,提问作者angelov_mm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:22:22