我是终端新手所以请耐心等待。我在安装Rails时遇到问题。我认为这是因为我打断了以前的安装。现在我一直遇到这个错误:
Error installing rails:
invalid gem: package is corrupt, exception while verifying: undefined method
'size' for nil:NilClass (NoMethodError) in /usr/local/lib/ruby/gems/2.2.0/cache/mail-2.6.3.gem
我已卸载第一次安装中安装的gem,但错误仍然存在。我卸载的宝石是:
rails-deprecated_sanitizer (1.0.3)`
rails-dom-testing (1.0.5)
rails-html-sanitizer (1.0.1)
sprockets-rails (2.2.4)
编辑:此问题已由以下问题解决:rm /usr/local/lib/ruby/gems/2.2.0/cache/mail-2.6.3.gem
并重新启动计算机。出错的原因是损坏的缓存文件。
答案 0 :(得分:5)
引用jensendarren的解决方案:
安装Rails 3时,我的电脑遭遇停电。后 重新启动计算机并继续安装Rails 3 进程因完全相同的错误而失败。问题是由于 gem安装缓存,其中包含已损坏/空的gem文件。我的解决方案 是清除此缓存并再次运行安装,如下所示:
- 使用
找出缓存的位置gem env
- 列出该缓存中的所有宝石,例如
ls -l /usr/lib/ruby/gems/1.8/cache/
- 使用
与成功安装的宝石进行比较gem list
- 从缓存列表中删除gem列表中缺少的gem,例如使用
rm
- 我还必须从规范目录
ls -l /usr/lib/ruby/gems/1.8/specifications/
中删除一些空/损坏的gemspec文件- 继续安装,例如
醇>sudo gem install -v=3.0.6 rails --no-rdoc --no-ri
答案 1 :(得分:1)
使用gem env
找到缓存使用
列出该缓存中的所有宝石ls -l /usr/lib/ruby/gems/2.2.0/cache/
使用
与已安装的宝石进行比较gem list
使用rm
命令
使用
继续安装gem install -v=version_u_want rails --no-rdoc --no-ri