Ruby安装坏了

时间:2015-04-18 13:52:18

标签: ruby macos

我有一台运行Yosemite(10.10.2)的Mac,我使用brew安装了ruby 2.2.2(我也试过了rbenv)。无论何时我运行bundle,rake或任何与ruby相关的东西,我都会收到此错误:

$ bundle
/usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'bundler' (>= 0) among 9 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/cici/.gem/ruby/2.2.0:/usr/local/lib/ruby/gems/2.2.0:/usr/local/Cellar/ruby/2.2.2/lib/ruby/gems/2.2.0', execute `gem env` for more information
from /usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
from /usr/local/Cellar/ruby/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
from /usr/local/bin/bundle:22:in `<main>'

我遇到了这种情况,试图修复openssl错误。无论如何,错误信息是正确的,我没有在这些路径中拥有bundler gem。我只是不明白为什么我的路径就在那里。我没有这条道路:

 /Users/cici/.gem/ruby/2.2.0

相反,它是:

/Users/cici/.gem/ruby/2.0.0

我使用rbenv安装了2.2.2,所以我不确定a)为什么在GEM_PATH上有2.2.0而b)为什么我在.gem下有2.0.0?以下是其输出:

$ which -a ruby
/usr/local/bin/ruby
/usr/local/bin/ruby
/usr/local/bin/ruby
/usr/bin/ruby
/usr/bin/ruby
/usr/local/bin//ruby

/ usr / local / bin / ruby​​是/ usr / bin / ruby​​的符号链接。我不确定最后一个条目是什么!版本返回:

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]

如何清理这一切并重新开始?我尝试过rbenv卸载以及使用brew进行安装和卸载。

谢谢!

1 个答案:

答案 0 :(得分:1)

Ruby在特定于版本的路径中查找gems,忽略补丁版本。因此,如果您之前在Ruby 2.0.x下安装了gem,那么他们就进入了/Users/cici/.gem/ruby/2.0.0,但是现在您已经安装了Ruby 2.2.x,它正在查看/Users/cici/.gem/ruby/2.2.0

当您升级Ruby时,这可能是一个问题,因为您的所有gem可执行文件(例如bundle)仍然在您的$PATH中,但是他们所需的文件不再存在于Ruby&#39; s中因新版本而加载路径。尝试运行which bundle;我打赌它在/Users/cici/.gem/ruby/2.0.0/bin之类的路径中。

解决方案是重新安装所有宝石,并可能将$PATH更新为不包含旧版本的可执行文件。如果你正确设置它,rbenv应该处理最后一部分。