小牛,RBENV,你的Ruby版本是2.0.0,但是你的Gemfile指定了2.1.1

我已经阅读并尝试了其他 几个 问题的build议, 像我的 (所有接受的答案)以及几个小时的谷歌search,但没有任何工作。 这导致我认为我的问题是在我的计算机上的一块Ruby / RBENV生态系统或可能是一个可怕的path问题损坏的东西。 我总是必须运行sudo来安装任何以前从未做过的gem,这也是令人费解的。

以下是我认为相关的一些文件和命令的输出。 如果您需要更多信息,请告诉我:

.zshrc

 export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" if which rbenv > /dev/null; then eval "$(rbenv init - zsh)"; fi 

ruby-v

 ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] 

rbenv当地

 2.1.1 

Gemfile(我也发现了几次我的gemfile.lock)

 source 'https://rubygems.org' ruby '2.1.1' gem 'rails', '4.1.4' ... [omitted for brevity] 

.ruby版本

 2.1.1 

echo $ PATH

 /[user path]/.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 

我会很感激,如果有人有什么我应该尝试下一个想法,短缺重新格式化我的电脑。

编辑1:尝试选项B从他们的git回购站下面按照本·克里格安装他们两个。 type rbenv正确返回rbenv是一个shell函数,原始消息不断出现。 我重新安装小牛,我的设置仍然无法正常工作。

编辑2:任何时候我尝试安装一个gem,我得到一个Gem::FilePermissionError说我没有访问Ruby 2.0.0文件夹(安装为系统)。 去捣鼓RBENV更多…

编辑3:更多的debugging(下面的一切)

在安装带有RBENV的Ruby版本时,保持错误,并发现一些人提到了readline问题。

尝试了以下步骤来修复readline: https : //github.com/sstephenson/ruby-build/issues/550#issuecomment-40681557 ,并得到一个错误,我的Xcode命令行工具安装是坏的。

xcode-select --install重新安装它们。

试了rbenv install 2.1.1再次rbenv install 2.1.1 ,并得到了The Ruby openssl extension was not compiled. Missing the OpenSSL lib? The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

按照https://coderwall.com/p/n9bnug ,我将我的OpenSSL扩展与https://coderwall.com/p/n9bnug

重置Ruby的版本: rbenv local 2.1.1 rbenv global 2.1.1rbenv rehash

一切似乎表明,bundler正在尝试使用我的system Ruby安装(2.0.0-p247),而不是RBENV指定的。 在丢失链接的地方陷入困境。

Solutions Collecting From Web of "小牛,RBENV,你的Ruby版本是2.0.0,但是你的Gemfile指定了2.1.1"

哇,只是哇。

我所要做的只是gem install bundler ,然后是rbenv rehash 。 一切正常。

原来的错误消息指出我与RBENV或我的Ruby版本的问题,实际上它只是落在旧版本的捆绑器上。

为什么我不会收到更多标准的this needs bundler version [xxxx]...错误,而不是告诉我,我的Ruby版本指定不正确?

如果你不得不使用sudo来安装gem,那么你的rbenv安装可能会出错。 我认为,如果你在OS X上,你必须运行sudo来安装宝石或包,你做错了(特别是如果你已经安装了homebrew )! 你有两个选择 –

选项A :改变你的.zshrc以使你的$PATH和你的rbenv设置更加友好。 这里需要注意的是/usr/local/bin只是被添加到$PATH ,它本身将会被你的系统(Mavericks)设置为正确的默认值。 让你发布的这两行看起来像这样:

 export PATH="/usr/local/bin:$PATH" eval "$(rbenv init -)" 

然后确保关闭任何和所有的外壳,并打开新的加载新的设置。 然后当你运行echo $PATH它应该看起来类似于…

 [home path]/.rbenv/shims:[home path]/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 

选项B :因为我更熟悉通过git安装rbenv,所以你可以尝试通过brew remove rbenv来安装你自制安装的rbenv安装,并按照rbenv的github页面指定的方向 (不要忘记安装ruby-build以及 )。 这包括删除.zshrc中的任何特定于rbenv的行,并将其设置为rbenv建议的内容 。

您可以随时通过在命令提示符下运行type rbenv来检查rbenv安装的type rbenv 。 如果一切顺利的话,你至少应该回到"rbenv is a function"