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

Ruby 1.8.7-p374环境下无法安装Gem的问题求助

解决 Marshal.load reentered at marshal_load 安装Gem错误

嘿,这个错误我在处理老Ruby版本的时候碰到过好多次!你用的ruby-1.8.7-p374、rubygems-1.8.29和rvm-1.29.3组合里,核心问题是rubygems版本和Ruby 1.8.7的marshal序列化逻辑不兼容,给你几个能快速解决的办法:

1. 降级rubygems到完全兼容的版本

Ruby 1.8.7对高版本rubygems的支持很差,你当前的rubygems-1.8.29刚好处于一个容易触发这个错误的版本,直接降级到1.8.30就能解决:

  • 先卸载当前的rubygems更新包:
    gem uninstall rubygems-update -x
    
  • 安装指定兼容版本的rubygems更新包:
    gem install rubygems-update -v 1.8.30
    
  • 执行更新命令切换到这个版本:
    update_rubygems --version 1.8.30
    

2. 清理RVM缓存并重置Gemset

有时候RVM的缓存或者已有的Gemset存在损坏文件,也会触发这个异常,清理后再试:

  • 清空RVM的所有缓存文件:
    rvm cleanup all
    
  • 如果你用了自定义Gemset,建议新建一个干净的Gemset并切换过去:
    rvm gemset create ruby187_gems
    rvm gemset use ruby187_gems
    

3. 安装兼容版本的Bundler(或其他Gem)

注意!Ruby 1.8.7不支持Bundler 2.x及以上版本,必须安装1.x的最后兼容版:

gem install bundler -v 1.17.3

额外提醒

ruby-1.8.7和对应的旧版rubygems早在多年前就停止维护了,安全漏洞和兼容性问题会越来越多,如果你的项目允许,尽量升级到Ruby 2.x以上的稳定版本,能省不少麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:27:50