2010-02-16 56 views
1

我在Mac上沒有使用Ruby一段時間。很明顯,我的環境中發生了一些變化,因爲gem不再像以前那樣工作。Ruby Gem包管理器失敗,因爲Gem :: GemNotFoundException

從我的機器上的一些信息,運行OSX 10.5.8:

% gem --version 
0.9.0 

% gem env 
Rubygems Environment: 
    - VERSION: 0.9.0 (0.9.0) 
    - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8 
    - GEM PATH: 
    - /usr/local/lib/ruby/gems/1.8 
    - REMOTE SOURCES: 
    - http://gems.rubyforge.org 

我看到的錯誤是:

% sudo gem update --system 
Password: 
Updating RubyGems... 
Attempting remote update of rubygems-update 
ERROR: While executing gem ... (RuntimeError) 
    rubygems-update requires builder >= 0 

或者,如果我試圖安裝一個新的寶石:

% sudo gem install bossman 
ERROR: While executing gem ... (Gem::GemNotFoundException) 
    Could not find bossman (> 0) in the repository 

有人建議清除source_cache文件,但這並沒有幫助我。其他推薦:

% gem clean 
Cleaning up installed gems... 
Clean Up Complete 

但這也沒有幫助。

有人能幫我拿gem再工作嗎?對此背後的推理的任何洞察都將有所幫助。我對Ruby和gem知之甚少,無法找到這些錯誤信息。

編輯

我試過Derick Bailey's suggestion,但沒有任何運氣:

% sudo gem install rubygems-update update_rubygems 
Password: 
ERROR: While executing gem ... (RuntimeError) 
    rubygems-update requires builder >= 0 

回答

3

你的RubyGems版本應該支持更新,但它顯然不工作。最近我已經看到了很多 - 不僅僅是在osx上。

「簡單」的答案是重新安裝ruby運行時,使用已經與之打包的更新版本的rubygems,或者您可以安裝rubygems的更新版本。

上安裝RubyGems的完整說明,請參閱http://docs.rubygems.org/read/chapter/3

嘗試運行此:gem install rubygems-update update_rubygems

如果不工作,你需要手動更新,可以使用這些指令來完成:http://docs.rubygems.org/read/chapter/3#page13

+0

@Derick,shell命令失敗(如我的編輯中所示),但從頭開始下載和安裝RubyGems似乎已經成功了。謝謝。 –

+0

@Derick,還有一件事 - 我在Ruby版本1.8.4(從2005年12月開始!),並且想知道Ruby的當前事實版本是什麼。你提到在你的答案中更新Ruby,但不知道如何去做。 –

+0

1.8.6和1.8.7是目前ruby版本的標準。我在Windows機器上運行1.8.6,在我的MacBook Pro上運行1.8.7。我讀過幾個地方,1.9.x系列是一個「開發」版本,並沒有完全準備好生產。但我不確定這是多麼真實。至於更新你的版本 - 取決於你如何安裝它的第一個地方。我在osx上使用macports。使安裝/更新容易 –

1

呃,我以爲我已經修復了這些遺留索引,所以update_rubygems工作...我猜不是。這裏的主要問題是你的RubyGems版本很舊,你需要更新。由於您無法安裝寶石,(沒有列入舊版索引中,爲了讓您更新),最好的做法是從http://gemcutter.org/pages/download下載.tgz/.zip並運行sudo ruby setup.rb

+0

@qrush - 感謝這個信息。下載完整的.tgz文件是唯一有效的工具。到現在爲止還挺好。 –

+0

更新:現在應該修復。如果不是,請告訴我! – qrush