安装宝石时出错

Maz*_*zzn 19 ruby ruby-on-rails

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

ERROR:  While executing gem ... (NoMethodError)
undefined method `spec' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

Dar*_*sen 37

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

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

  1. 使用了解缓存的位置 gem env
  2. 列出该缓存中的所有gem,例如 ls -l /usr/lib/ruby/gems/1.8/cache/
  3. 与使用成功安装的宝石比较 gem list
  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

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

  • 一个系统崩溃留下了一些充满空白十六进制的宝石.清除`specifications`和`cache`文件夹似乎解决了这个问题. (2认同)

Tar*_*ast 0

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

通常只有当您尝试运行它们时您才会发现......就像这样。

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

其他宝石通常不太容易找出,但通过谷歌搜索错误消息(或将其放在 StackOverflow 上)通常可以很快解决。