对于一个新项目,我被迫使用ruby版本2.5.0。为什么我不能使用其他版本的Ruby?
我选择了rbenv local 2.4.0
的ruby版本,但是当我输入ruby -v
时,我读到了:
ruby 2.5.0dev (2017-08-01 trunk 59456) [x86_64-darwin16]
我用bundled env
检查过Ruby版本是Ruby 2.5.0。
我将项目设置为要求ruby 2.4.0,并在运行bundle
时看到此消息:
Your Ruby version is 2.5.0, but your Gemfile specified 2.4.0
bundle
能够安装项目的依赖项,但仅当项目将ruby版本指定为2.5.0时才能安装。
这里发生了什么?如何使用rbenv和bundler管理和配置不同的ruby版本?我是否应该有不同版本的bundler来安装每个项目各自的宝石及其相应的ruby版本?我错过了gem
cli的东西,它似乎只安装了打包器,其ruby版本设置为2.5.0?
答案 0 :(得分:0)
Rbenv as rvm为全局设置提供了ruby版本。否则,用户必须每次在其控制台中的每个项目中指定ruby版本。
$ ruby -v
ruby 2.5.0(...)
$ rbenv local 2.4.0
$ ruby -v
ruby 2.4.0(...)
Read more about specify ruby version in rbevn
如果这不起作用,请尝试重新安装rbenv。在为您的系统找到此问题的答案之前,您可以使用rvm。
因此,您可以打开两个控制台选项卡,并在每个选项卡中指定两个不同的ruby版本。它会工作。 当用户在heroku或capistrano上部署他的项目时,也忽略了他的gemfile中的ruby版本。对于capistrano,我们需要在capfile或deploy.rb上指定ruby版本,每次重新部署项目或重新启动服务器时,都应在rbenv或rvm中设置ruby版本。