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

Ruby 3.1.x环境下bundle install安装mini_racer 0.8.0失败求助

解决mini_racer 0.8.0安装时Psych::Parser的NoMethodError问题

核心原因分析

这个错误源于Ruby 3.1+对Psych库的API做了变更,而mini_racer 0.8.0依赖的libv8-node版本仍在使用已废弃的Psych::Parser.parse方法,导致原生扩展构建失败。即使切回Ruby 3.0.4,bundle缓存或残留的扩展文件也可能导致问题持续存在。

分步解决方案

1. 彻底清理缓存与残留文件

先移除所有可能干扰的缓存和旧构建文件:

# 清理bundle全局缓存
bundle clean --force
# 删除项目本地bundle目录(若存在)
rm -rf vendor/bundle
# 卸载相关gem并删除本地缓存
gem uninstall mini_racer libv8-node
rm -rf ~/.bundle/cache/gems/mini_racer-* ~/.bundle/cache/gems/libv8-node-*

2. 升级mini_racer至兼容版本

mini_racer 0.9.0及以上版本已修复Ruby 3.1+的Psych API适配问题,修改Gemfile:

# 替换原有mini_racer声明
gem 'mini_racer', '>= 0.9.0'

执行更新命令:

bundle update mini_racer

3. 补全Ubuntu系统依赖

Ubuntu 22.04环境下安装libv8-node需要依赖基础编译库,先安装缺失组件:

sudo apt update
sudo apt install build-essential libssl-dev libnode-dev

4. 强制重新构建扩展

若仍失败,临时启用Psych兼容模式后重新安装:

export RUBYOPT="-r psych"
bundle install --force

验证安装有效性

进入Rails控制台验证mini_racer是否正常加载:

require 'mini_racer'
context = MiniRacer::Context.new
context.eval('1 + 2') # 正常返回3则说明安装成功

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:06:09