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

Ruby版本不匹配报错求助:Gemfile指定3.2.2但系统显示3.0.2

解决Ruby版本不匹配问题

1. 确认Ruby路径优先级

运行echo $PATH查看系统路径顺序,snap安装的Ruby路径通常为/snap/bin。如果/usr/bin(系统自带Ruby所在路径)排在/snap/bin之前,系统会优先调用旧版本Ruby。

修改PATH优先级:

  • 编辑~/.bashrc或~/.profile文件,添加:
    export PATH="/snap/bin:$PATH"
    
  • 刷新配置使修改生效:
    source ~/.bashrc
    
  • 再次执行ruby -v验证是否显示3.2.2版本。

2. 检查是否存在Ruby版本管理工具

若服务器之前安装过rbenv、rvm这类版本管理工具,它们会覆盖全局Ruby的调用路径:

  • 检查工具是否存在:
    which rbenv || which rvm
    
  • 如果是rbenv:
    rbenv install 3.2.2
    rbenv global 3.2.2  # 设置全局默认版本
    # 也可在项目目录设置本地版本
    cd /path/to/your/rails/app
    rbenv local 3.2.2
    
  • 如果是rvm:
    rvm install 3.2.2
    rvm use 3.2.2 --default
    

3. 配置部署环境的Ruby路径

如果通过Passenger、Puma等服务部署Rails应用,需在服务配置中指定正确的Ruby路径:

  • Passenger(Nginx配置):
    passenger_ruby /snap/bin/ruby;
    
  • Puma:
    在启动命令前指定Ruby路径,或在Puma配置文件中添加:
    ruby "/snap/bin/ruby"
    

4. 重启环境确保生效

  • 重新登录shell,或直接重启服务器
  • 重启Rails应用服务(例如systemctl restart puma)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:07:37