【问题标题】:"NoMethod" error when installing Rails安装 Rails 时出现“NoMethod”错误
【发布时间】:2015-03-10 08:03:55
【问题描述】:

我是终端新手,请多多包涵。我在安装 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 并重新启动机器。错误的原因是缓存文件损坏。

【问题讨论】:

  • 你运行的命令是什么?

标签: ruby-on-rails


【解决方案1】:

This solution worked for me.

引用jensendarren的解决方案:

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

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

【讨论】:

    【解决方案2】:

    使用 gem env 定位缓存

    列出该缓存中的所有宝石,使用

    ls -l /usr/lib/ruby/gems/2.2.0/cache/
    

    使用已安装的 gem 比较

    gem list
    

    使用rm 命令从缓存列表中删除gem 列表中缺少的gem

    继续安装,使用

    gem install -v=version_u_want rails --no-rdoc --no-ri
    

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 2014-05-01
      • 2017-07-11
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多