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

Ubuntu18.04运行rails console报需Bundler2及以上版本错误如何解决

报错根因说明

  1. Bundler::LockfileError:项目Gemfile.lock文件生成时使用的Bundler大版本,和你当前终端调用的Bundler版本不匹配,你本地安装的高版本Bundler未被环境优先识别。
  2. 执行sudo gem update --system报错:Ubuntu 18.04自带的Ruby属于系统级组件,受apt包管理工具管控,手动修改系统RubyGems版本会触发兼容冲突,导致组件初始化失败。

解决方案

方案一:临时修复现有环境(适合快速恢复开发)

  • 先卸载已安装的损坏的rubygems-update包,恢复系统RubyGems的默认状态:
sudo gem uninstall rubygems-update -x
  • 进入你的Rails项目根目录,查看Gemfile.lock要求的Bundler版本:
grep -A 1 "BUNDLED WITH" Gemfile.lock
  • 根据输出的版本号安装对应Bundler,示例中输出版本为2.2.32则执行:
sudo gem install bundler -v 2.2.32
  • 完成后在项目目录执行bundle install,再运行rails console即可正常启动。
  • 开头的/mnt/c权限警告不影响功能,如需消除可执行:
sudo chmod o-w /mnt/c

方案二:使用Ruby版本管理器(推荐,彻底解决版本/权限冲突)

Ubuntu 18.04自带的Ruby仅为系统组件运行设计,用于开发会频繁遇到权限、版本不兼容问题,建议用rbenv管理独立的开发用Ruby环境:

  • 先安装依赖组件:
sudo apt update
sudo apt install git libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libncurses5-dev libffi-dev libgdbm-dev rbenv ruby-build
  • 将rbenv加入终端环境变量:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
  • 安装适配Rails 6.1的Ruby版本(推荐2.7.x系列):
rbenv install 2.7.6
rbenv global 2.7.6
  • 后续安装Bundler、Rails等gem无需加sudo,直接执行即可:
gem install bundler rails
  • 进入你的项目目录重新执行bundle install,后续所有Ruby相关开发都不会再出现系统级权限、版本冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:15:02