Mavericks,RBENV,您的Ruby版本是2.0.0,但您的Gemfile指定为2.1.1

时间:2014-07-31 14:32:38

标签: ruby-on-rails ruby linux bundler osx-mavericks

我已阅读并尝试了severalotherquestionslike mine(所有已接受的答案)以及几个小时的Google中的建议搜索,但没有任何效果。这让我觉得我的问题在我的计算机上有一块Ruby / RBENV生态系统是腐败的,或者可能是一个可怕的PATH问题。我总是要运行sudo安装任何宝石,这是我以前从未做过的,所以这也很令人费解。

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

.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 local

2.1.1

Gemfile(我也曾多次吹灭我的g​​emfile.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根据Ben Kreeger从下面的git repos安装这两个选项。 type rbenv正确返回rbenv是一个shell函数,原始消息不断出现。我重新安装了Mavericks,但我的设置仍无法正常工作。

编辑2:每当我尝试安装gem时,我都会得到Gem::FilePermissionError说我无法访问Ruby 2.0.0文件夹(作为系统安装)。要更多地使用RBENV ......

编辑3:更多调试(以下所有内容)

使用RBENV安装Ruby版本时出现错误,并发现有些人提到readline个问题。

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

xcode-select --install重新安装。

再次尝试rbenv install 2.1.1,并获得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指定的内容。感到困惑的是缺失的环节。

2 个答案:

答案 0 :(得分:60)

哇,哇哇。

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

原始错误消息向我指出了RBENV或我的Ruby版本的问题,而实际上它只是落在旧版本的bundler上。

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

答案 1 :(得分:1)

如果您不得不使用sudo来安装宝石,那么您的rbenv安装可能会出现问题。我认为如果您使用OS X并且必须运行sudo来安装宝石或软件包,那么您做错了(特别是如果您已经做错了)得到了homebrew!你有两个选择 -

选项A :改变.zshrc与您的$PATH和您的rbenv设置更加友好。请注意,/usr/local/bin只是$PATH的前置,export PATH="/usr/local/bin:$PATH" eval "$(rbenv init -)" 本身将由您的系统(Mavericks)设置为正确的默认值。让你发布的那两行看起来像这样:

echo $PATH

然后确保关闭所有shell并打开新shell以加载新设置。然后当你运行[home path]/.rbenv/shims:[home path]/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 时,它看起来应该类似于......

brew remove rbenv

选项B :由于我更熟悉通过git安装rbenv,您可以尝试通过.zshrc对自制的rbenv安装进行核对,并按照{{3}进行操作(并且不要忘记the directions specified on rbenv's github page)。这包括删除type rbenv中任何特定于rbenv的行并将其设置为install ruby-build as well

您始终可以通过在命令提示符下运行"rbenv is a function"来检查rbenv安装的完整性。如果一切顺利,您至少应该回到{{1}}。