安装宝石时出错

时间:2010-10-22 18:10:20

标签: ruby-on-rails ruby

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

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

2 个答案:

答案 0 :(得分:37)

我有与此完全相同的错误......

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

  1. 使用gem env
  2. 找出缓存的位置
  3. 列出该缓存中的所有宝石,例如ls -l /usr/lib/ruby/gems/1.8/cache/
  4. 使用gem list
  5. 与成功安装的宝石进行比较
  6. 从缓存列表中删除gem列表中缺少的gem,例如使用rm
  7. 我还必须从规范目录ls -l /usr/lib/ruby/gems/1.8/specifications/中删除一些空/损坏的gemspec文件
  8. 继续安装,例如sudo gem install -v=3.0.6 rails --no-rdoc --no-ri
  9. 希望这可以帮助在宝石安装过程中出现断电或其他外部故障的其他人!

答案 1 :(得分:0)

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

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

幸运的是,这里的错误信息非常清楚你需要安装“rspec”gem ......正如你已经发现的那样,解决方案只是安装缺少的gem。

其他宝石通常不易理解,但谷歌搜索错误信息(或将其放在StackOverflow上)通常会很快将其排序。