安装gem时出错
我在安装某些gem时遇到错误。 我正在使用ubuntu 10.10。 错误消息显示了这一点。
ERROR: While executing gem ... (NoMethodError) undefined method `spec' for nil:NilClass
我有完全相同的错误……
安装Rails 3时,我的电脑遭遇停电。 重新启动计算机并继续Rails 3安装后,该过程失败,并出现同样的错误。 问题是由于gem安装缓存有损坏/空的gem文件。 我的解决方案是清除此缓存并再次运行安装,如下所示:
- 使用
gem env
找出缓存的位置 - 列出该缓存中的所有gem,例如
ls -l /usr/lib/ruby/gems/1.8/cache/
- 与使用
gem list
成功安装的gem相比较 - 从缓存列表中删除gem列表中缺少的gem,例如使用
rm
- 我还必须从规范目录中删除一些空/损坏的gemspec文件
ls -l /usr/lib/ruby/gems/1.8/specifications/
- 继续安装,例如
sudo gem install -v=3.0.6 rails --no-rdoc --no-ri
希望这可以帮助在gem安装过程中出现断电或其他外部故障的其他人!
有些gem依赖于其他gem来运行,但尚未正确设置以自动安装它们(即它们没有正确设置其依赖项)。
您通常只会在尝试运行它们时找到它们……就像这样。
幸运的是,这里的错误消息使得你很清楚你需要安装“rspec”gem …而且你已经发现,解决方案只是安装缺少的gem。
其他gem通常不容易弄清楚,但谷歌搜索错误消息(或将其放在StackOverflow上)通常很快将其排序。