2015-04-18 185 views
2

我有一台运行Yosemite(10.10.2)的Mac,我使用brew安装了ruby 2.2.2(并且我尝试了rbenv)。每当我跑捆绑,耙,或任何相关的红宝石,我得到这个错误:红宝石安装破

$ 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错误。无论如何,错误消息是正确的,我没有在这些路径中的打包商宝石。我只是不明白为什么我的路径在那里。我没有这样的路径:

/Users/cici/.gem/ruby/2.2.0 

相反,它是:

/Users/cici/.gem/ruby/2.0.0 

我使用rbenv安装2.2.2,所以我不知道一)为什么是2.2.0的GEM_PATH和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

Ruby在特定于版本的路径中查找gem,忽略修补程序版本。所以如果你以前在Ruby 2.0.x下安装了gem,他们进入/Users/cici/.gem/ruby/2.0.0,但现在你已经安装了Ruby 2.2.x,它正在寻找/Users/cici/.gem/ruby/2.2.0

这可能是当您升级Ruby的问题,因为你所有的宝石可执行文件(例如bundle)仍处于你$PATH,但他们需要的文件是因为新版本的Ruby的负载路径不再。尝试运行which bundle;我敢打赌,它的路径是/Users/cici/.gem/ruby/2.0.0/bin

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

+0

$哪个包 /usr/local/bin/bundle –

+0

工作正常!然而,我回到原来的错误,开始了我的这个兔子洞。 Gem :: Ext :: BuildError:错误:无法构建gem本机扩展。 /usr/local/opt/ruby​​/bin/ruby​​ -r ./siteconf20150418-14037-1q9v0rr.rb extconf.rb 检查pg_config ...否 否pg_config ...无论如何尝试。如果构建失败,请尝试使用 --with-pg-config =/path/to/pg_config 检查libpq-fe.h ...否 找不到'libpq-fe.h头文件 * ** extconf.rb失败*** –

+0

http://stackoverflow.com/questions/6040583/cant-find-the-libpq-fe-h-header-when-trying-to-install-pg-gem – Max