安装gem时出错

我在安装某些gem时遇到错误。 我正在使用ubuntu 10.10。 错误消息显示了这一点。

ERROR: While executing gem ... (NoMethodError) undefined method `spec' for nil:NilClass 

我有完全相同的错误……

安装Rails 3时,我的电脑遭遇停电。 重新启动计算机并继续Rails 3安装后,该过程失败,并出现同样的错误。 问题是由于gem安装缓存有损坏/空的gem文件。 我的解决方案是清除此缓存并再次运行安装,如下所示:

  1. 使用gem env找出缓存的位置
  2. 列出该缓存中的所有gem,例如ls -l /usr/lib/ruby/gems/1.8/cache/
  3. 与使用gem list成功安装的gem相比较
  4. 从缓存列表中删除gem列表中缺少的gem,例如使用rm
  5. 我还必须从规范目录中删除一些空/损坏的gemspec文件ls -l /usr/lib/ruby/gems/1.8/specifications/
  6. 继续安装,例如sudo gem install -v=3.0.6 rails --no-rdoc --no-ri

希望这可以帮助在gem安装过程中出现断电或其他外部故障的其他人!

有些gem依赖于其他gem来运行,但尚未正确设置以自动安装它们(即它们没有正确设置其依赖项)。

您通常只会在尝试运行它们时找到它们……就像这样。

幸运的是,这里的错误消息使得你很清楚你需要安装“rspec”gem …而且你已经发现,解决方案只是安装缺少的gem。

其他gem通常不容易弄清楚,但谷歌搜索错误消息(或将其放在StackOverflow上)通常很快将其排序。