我一直在使用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安装有时可能是“气质”,或者至少是过去,我真的可以对出了什么问题使用一些建议,以及我如何安全修复破碎的宝石。
感谢。
答案 0 :(得分:7)
Gem netrc
是heroku
的依赖项,再次运行gem install heroku
来安装所有依赖项。
答案 1 :(得分:3)
如果以上解决方案无效,请删除heroku客户端,我已解决了同样的问题:
rm -rf ~/.heroku/client
答案 2 :(得分:1)
某些早期版本的更新程序中存在错误。我建议从https://toolbelt.heroku.com重新下载并重新安装。执行此操作后,您应该拥有最新版本,并且更新应该按预期工作,因为新版本将继续发布。
答案 3 :(得分:0)
gem install heroku
可能还不够。我遇到了这个问题,不得不做bundle update heroku
。它取决于您的项目使用的是什么,本地gemset还是全局gemset。当然,您希望确保您的Gemfile没有锁定特定版本的heroku gem,否则运行更新将不会执行任何操作。