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

执行bundle exec rake secret提示bad interpreter且Ruby版本不一致怎么解决

问题1:rbenv显示的Ruby版本与ruby -v输出不一致的原因

看你贴的gem env里的SHELL PATH输出,/usr/local/bin、/usr/bin等系统路径排在/Users/****/.rbenv/shims前面。rbenv的实现原理是靠将shims目录放在PATH最优先级,劫持所有Ruby相关命令的调用,现在系统路径优先级更高,会优先调用系统预装的Ruby 2.6.3版本,rbenv的版本切换配置自然不会生效。

修复方法:

  • 打开~/.bash_profile,确认是否添加了rbenv的初始化配置,没有的话追加以下两行:
export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
  • 执行source ~/.bash_profile让配置生效
  • 执行echo $PATH确认/Users/****/.rbenv/shims排在PATH的最开头,此时再执行ruby -v就会显示rbenv指定的2.3.0版本。
问题2:无法执行bundle exec rake secret的原因

你当前/usr/local/bin/bundle是早期使用Ruby 2.3版本安装的,文件头的shebang指定了已不存在的/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby路径,所以会报bad interpreter错误。你之前执行的sed命令写错了路径(缺少开头的/,正确路径是/usr/local/bin/bundle),且该问题不是换行符导致的,所以修复无效。

修复方法:

在完成上述rbenv配置、确认ruby -v输出为2.3.0后,执行以下操作:

  • 执行gem install bundler -v '~> 1.17'安装适配Ruby 2.3和Rails 5.0的bundler版本
  • 执行rbenv rehash刷新命令映射
  • 执行which bundle,正常会返回/Users/****/.rbenv/shims/bundle,此时再执行bundle exec rake secret即可正常运行。
额外避坑提示
  • 你之前修改secrets.yml里的环境变量大小写没有意义,Heroku环境变量大小写敏感,你需要在Heroku后台设置对应大小写的secret_key_base变量才可以解决部署报错,删除本地的SECRET_KEY_BASE变量对Heroku运行的应用没有任何影响
  • 不要随意删除Heroku自动生成的DATABASE相关环境变量,删除后会导致应用无法连接数据库,后续会出现新的部署错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 19:57:02