如何让rbenv和bundler一起工作而不会在项目中出现冲突?

时间:2017-08-01 00:57:53

标签: ruby bundler rbenv

对于一个新项目,我被迫使用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?

1 个答案:

答案 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版本。