ruby-on-rails - 为什么我不能执行 $ bundle exec rake secret?出现错误“错误的解释器:没有这样的文件或目录”
问题描述
我的ruby版本是2.3.0,我的mysql版本是8.0.23,我的mysql2版本是0.5.3,我的rails版本是5.0.7.2,我的Xcode版本是12.5。
我使用 macOS Big Sur(11.4 版)和文本编辑器“Atom”。
我计划使用 HEROKU 的 URL 发布我的 Rails 应用程序(例如 https://[My APP Name].herokuapp.com)。
我运行了以下命令。
$ heroku open
发生以下错误。
An unhandled lowlevel error occurred. The application logs may have details.
我运行了以下命令。
$ heroku logs
#<RuntimeError: Missing
`secret_key_base` for 'production' environment, set this value in `
config/secrets.yml`>
我的 config/secrets.yml 文件如下所示。
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
我编辑了我的 config/secrets.yml 文件,如下所示。
production:
secret_key_base: <%= ENV["secret_key_base"] %>
我使用此命令删除了如下两个环境变量:$ heroku config:unset [ENVIRONMENT VARIABLE NAME]
.
$ heroku config:unset DATABASE_USERNAME=****
$ heroku config:unset DATABASE_PASSWORD=GENERATED_CODE
我使用以下命令删除SECRET_KEY_BASE
了 vim 编辑器中的环境变量。/etc/profile
$ vi /etc/profile
我保存了 vim 编辑器/etc/profile
以使用以下两个命令结束它。
:w !sudo tee %
:q!
SECRET_KEY_BASE
我使用以下命令删除了环境变量。
$ vi ~/.bash_profile
我保存.bash_profile
,使用Esc然后“ :x
”和Enter。
我运行了以下命令。
$ bundle exec rake secret
bash: /usr/local/bin/bundle: /System/Library/Frameworks/Ruby.framework/Versions/2.3/
usr/bin/ruby: bad interpreter: No such file or directory
我运行了以下命令。
$ sed -i 's/\r//' usr/local/bin/bundle
sed: 1: "usr/local/bin/bundle": invalid command code u
我运行了以下命令。
$ /usr/local/bin/bundle
bash: /usr/local/bin/bundle: /System/Library/Frameworks/Ruby.framework/Versions/2.3/
usr/bin/ruby: bad interpreter: No such file or directory
下面是 和gem env
的which bundle
输出which ruby
。
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [universal.x86_64-darwin20]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.6.0
- USER INSTALLATION DIRECTORY: /Users/****/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/
ruby
- GIT EXECUTABLE: /usr/local/bin/git
- EXECUTABLE DIRECTORY: /usr/local/bin
- SPEC CACHE DIRECTORY: /Users/****/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-20
- GEM PATHS:
- /Library/Ruby/Gems/2.6.0
- /Users/****/.gem/ruby/2.6.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.
0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Users/****/.rbenv/shims
$ which bundle
/usr/local/bin/bundle
$ which ruby
/usr/bin/ruby
我安装了 ruby 版本“2.3.0”,如下所示,因为 bundle 似乎调用“2.3”。
$ rbenv install 2.3.0
Downloading openssl-1.0.2u.tar.gz...
-> https://****
Installing openssl-1.0.2u...
Installed openssl-1.0.2u to /Users/****/.rbenv/versions/2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://****
Installing ruby-2.3.0...
WARNING: ruby-2.3.0 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.
ruby-build: using readline from homebrew
Installed ruby-2.3.0 to /Users/****/.rbenv/versions/2.3.0
我验证安装了 ruby 版本“2.3.0”,当前的 ruby 版本是“2.3.0”。
$ rbenv local 2.3.0
$ rbenv rehash
$ rbenv versions
system
* 2.3.0
$ rbenv global 2.3.0
$ rbenv rehash
$ rbenv versions
system
* 2.3.0
但是当使用以下命令时,ruby 当前版本是“2.6.3”。
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 3.0.3
- RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [universal.x86_64-darwin20]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.6.0
- USER INSTALLATION DIRECTORY: /Users/****/.gem/ruby/2.6.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
- GIT EXECUTABLE: /usr/local/bin/git
- EXECUTABLE DIRECTORY: /usr/local/bin
- SPEC CACHE DIRECTORY: /Users/****/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-20
- GEM PATHS:
- /Library/Ruby/Gems/2.6.0
- /Users/****/.gem/ruby/2.6.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Users/****/.rbenv/shims
我运行了以下命令。
$ bundle exec rake secret
bash: /usr/local/bin/bundle: /System/Library/Frameworks/Ruby.framework/Versions/2.3/
usr/bin/ruby: bad interpreter: No such file or directory
为什么我不能执行$ bundle exec rake secret
?为什么会有多个当前的 ruby 版本“2.3.0”、“2.6.3”?
发生错误“ bad interpreter: No such file or directory
”。
解决方案
推荐阅读
- excel - 制作工作时间跟踪器
- javascript - 如何在 javascript 中实现对 webSocket 连接的 Ping/Pong 请求?
- python - 如何通过gmail api获取内容['payload']['body']['data']第一封邮件
- python - 在 Python 中查找从 for 循环生成的值的总和
- pdf - Ghostscript 在转换为 CMYK 时将图形转换为丰富的黑色
- python - 如何在阅读csv时删除列表多个括号
- angular - 使用 Angular 6 选择下拉菜单的默认值
- ruby - ArgumentError - 范围值错误
- angularjs - 即使在添加 ngRoute 之后,Injector:modulerrr 也会出错。AngularJs
- python - 无法使用 Python SDK 在 docker 容器内创建文件