【问题标题】:Updating rspec gem has caused 'gem' command to become unstable/buggy. Help!更新 rspec gem 导致“gem”命令变得不稳定/错误。帮助!
【发布时间】:2011-05-22 12:01:02
【问题描述】:

我已经安装了最新的 rspec gem,现在每个“gem”命令,无论如何,都会抛出这个错误:

egervari@egervari:~/Websites/training$ gem -v
Invalid gemspec in [/usr/local/lib/ruby/gems/1.9.1/specifications/rspec-core-2.6.2.gemspec]: invalid date format in specification: "2011-05-21 00:00:00.000000000Z"
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:277:in `block in _resort!': undefined method `name' for nil:NilClass (NoMethodError)
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in `sort!'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in `_resort!'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:270:in `_all'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:402:in `each'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:477:in `map'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:477:in `find_files'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:1061:in `load_plugins'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:85:in `<top (required)>'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /usr/local/bin/gem:9:in `<main>'

它完全锁定了我的 Rails 开发。因为这个,我什么都做不了。

我在 Ubuntu 11.04 上。我用谷歌搜索了这个,似乎我不是唯一遇到这个的人。但是,我还没有找到解决方案。

如果您不知道如何解决此问题,我该如何手动摆脱所有宝石并从头开始?

编辑:似乎打开文件并将其更改为“2011-05-21”可以修复它......但这怎么会发生?我不是故意的,但我整天都在用 Ruby 和 Rails 遇到奇怪的事情。开发 2 周后,我遇到的“问题”似乎从未停止过。我真的很紧张/担心我选择使用 Rails :(

编辑 2:我的版本

egervari@egervari:~/Websites/training$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
egervari@egervari:~/Websites/training$ gem -v
1.8.1

【问题讨论】:

  • 我推荐使用 rvm rvm.beginrescueend.com 来处理 gem 安装和 ruby​​ 版本。这是一个奇怪的问题,不知道如何提供帮助。
  • 似乎将生成的日期替换为“2011-05-21”可以修复它。我只需要运行“sudo gedit /usr/local/lib/ruby/gems/1.9.1/specifications/rspec-core-2.6.2.gemspec”。不过,我对这种事情会发生感到失望。很难相信一个日期参数会导致整个 gem 程序崩溃。
  • 考虑在github.com/rspec/rspec-core/issues报告问题

标签: ruby-on-rails ruby rspec gem


【解决方案1】:

我在 Ruby 1.9.2p0(gem 版本 1.7.2)下的 Rails 应用程序中遇到了这个问题。我通过进入(在我的情况下)/Users/smei/.rvm/gems/ruby-1.9.2-p0 并删除所有 rspec-core 2.6.2 的东西手动卸载了 rspec-core 2.6.2。当我卸载 gem 时,它没有出现在我的 rspec-core 版本列表中。

然后我将 rspec-core 锁定到 2.6.0,这解决了问题。

【讨论】:

    【解决方案2】:

    您使用的是什么版本的 ruby​​ 和 ruby​​em?

    ruby -v
    gem -v

    【讨论】:

    • 同样的问题,gem -> 1.7.2,ruby -> ruby​​ 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10.7.0],MBARI 0x6770,Ruby Enterprise Edition 2011.03
    猜你喜欢
    • 2017-04-03
    • 2018-06-23
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多