在RVM(OSX)上更新Heroku gem导致了LoadError和“破坏”的heroku gem。什么是最安全的修复方法?

时间:2012-08-06 23:31:17

标签: heroku gem rvm

我一直在使用RVM(v1.14.11& JewelryBox GUI)和OSX 10.6.8一年多没有任何问题。我安装了两颗红宝石(1.9.2和1.9.3),以及每颗红宝石的各种宝石。

由于我刚刚完成将当前数据库迁移到新产品,我想我也可以更新heroku gem(2.14)。所以我通过rvm选择了我的ruby-1.9.2-p290@railsgemset,打开了终端,并运行了“heroku udpate”。

我没有注意到更新期间的任何错误,但我尝试运行“heroku版本”,以及其他各种“heroku”命令,现在收到以下错误:

/Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- netrc (LoadError)
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.heroku/client/lib/heroku/auth.rb:6:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.heroku/client/lib/heroku/client.rb:4:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/gems/heroku-2.14.0/lib/heroku.rb:6:in `<top (required)>'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/gems/heroku-2.14.0/bin/heroku:6:in `<top (required)>'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/bin/heroku:19:in `load'
        from /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/bin/heroku:19:in `<main>'

我注意到上面有一些对“1.9.1”的引用,这是我用rvm建立的原始gemset,然后将其更新为“1.9.2”。也许这就是原因?

运行“宝石环境”给出:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.10
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin10.8.0]
  - INSTALLATION DIRECTORY: /Users/me/.rvm/gems/ruby-1.9.2-p290@rails
  - RUBY EXECUTABLE: /Users/me/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/me/.rvm/gems/ruby-1.9.2-p290@rails/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /Users/me/.rvm/gems/ruby-1.9.2-p290@rails
     - /Users/me/.rvm/gems/ruby-1.9.2-p290@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

我还有另一个gemset(ruby-1.9.3-p194@rails32),它还包含“heroku”gem,当我切换到它时,使用rvm,使用它的“heroku”gem没有问题。 / p>

由于rvm / osx安装有时可能是“气质”,或者至少是过去,我真的可以对出了什么问题使用一些建议,以及我如何安全修复破碎的宝石。

感谢。

4 个答案:

答案 0 :(得分:7)

Gem netrcheroku的依赖项,再次运行gem install heroku来安装所有依赖项。

答案 1 :(得分:3)

如果以上解决方案无效,请删除heroku客户端,我已解决了同样的问题:

rm -rf ~/.heroku/client

答案 2 :(得分:1)

某些早期版本的更新程序中存在错误。我建议从https://toolbelt.heroku.com重新下载并重新安装。执行此操作后,您应该拥有最新版本,并且更新应该按预期工作,因为新版本将继续发布。

答案 3 :(得分:0)

如果您在特定项目的Gemfile中拥有heroku gem,则

gem install heroku可能还不够。我遇到了这个问题,不得不做bundle update heroku。它取决于您的项目使用的是什么,本地gemset还是全局gemset。当然,您希望确保您的Gemfile没有锁定特定版本的heroku gem,否则运行更新将不会执行任何操作。