2010-02-16 57 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