2015-04-18 35 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