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

Ubuntu环境下Ruby Bundle无配置文件及Gem管理问题求助

修复Ubuntu 20.04上Snap安装的Ruby 3.x的Gem与Bundler配置问题

1. 确认当前Ruby环境路径

先检查当前Ruby和Gem的执行路径,确保Snap安装的版本在PATH优先级最高:

which ruby
which gem
ruby -v

正常输出路径应包含/snap/bin/,版本显示为3.x.x。如果不是,需要调整PATH环境变量,把/snap/bin移到其他Ruby相关路径之前。

2. 配置GEM_HOME和GEM_PATH环境变量

编辑你的shell配置文件(如~/.bashrc或~/.zshrc,根据使用的shell选择),添加以下内容(将3.x.x替换为你实际的Ruby版本,比如3.2.2):

export GEM_HOME="$HOME/.gem"
export GEM_PATH="$HOME/.gem:/snap/ruby/current/lib/ruby/gems/3.x.x"
export PATH="$GEM_HOME/bin:$PATH"

保存后重新加载配置:

source ~/.bashrc

这一步让Gem能识别你安装在~/.gem/gems下的包,同时兼容Snap Ruby自带的系统gem路径。

3. 修复Gem包识别问题

配置完环境变量后,验证Gem是否能索引到已安装的包:

gem list menu_maker

如果仍找不到,重新安装一次包:

gem install menu_maker

这次安装后,Gem应该能正常识别该包。

4. 初始化并配置Bundler

Bundler需要明确配置才能正常工作,分两种场景处理:

  • 全局配置:设置默认的Gem安装路径,避免权限问题
    bundle config set --global path '~/.gem/bundle'
    
  • 项目级配置:进入你的Rails项目根目录,初始化Gemfile并安装依赖
    bundle init
    # 编辑Gemfile,添加一行 gem 'menu_maker'
    bundle install
    

执行后,项目目录下会生成.bundle/config文件,后续使用bundle exec前缀执行命令(比如bundle exec rails server)就能正确加载项目依赖。

5. 清理旧Ruby残留(可选但推荐)

之前手动删除Ruby可能留下残留文件,检查以下路径并删除旧版本的Ruby相关文件:

  • /usr/local/bin/ruby、/usr/bin/ruby
  • /usr/local/lib/ruby、/usr/lib/ruby
    同时检查~/.bashrc或~/.profile中是否有旧Ruby的PATH配置,如有则删除。

6. 验证环境

最后确认所有配置生效:

  1. ruby -v 显示3.x版本
  2. gem list menu_maker 能看到已安装的包
  3. 进入Rails项目,执行bundle exec rails console,尝试调用MenuMaker相关方法,确认能正常加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:25:08