Soooo,我从1.7.2升级到RubyGems 1.8.1使用gem upgrade --system,然后立即gem pristine --all --no-extensions按照Eric Hodel的博客推荐.在运行gem命令时遇到错误之后,我搜索了一下,发现了一些gem uninstall带有弃用警告的宝石的建议,但后来意识到我不能,因为gem uninstall只是错误 - 任何其他命令 - 包括只是普通的ol' gem.
当我运行任何这些命令时,我仍然收到一堆"已弃用"的警告,然后是这个回溯:
/Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:277:in `block in _resort!': undefined method `name' for nil:NilClass (NoMethodError)
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in `sort!'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:276:in `_resort!'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:270:in `_all'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:402:in `each'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:477:in `map'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:477:in `find_files'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1061:in `load_plugins'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:85:in `<top (required)>'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/bin/gem:9:in `<main>'
Run Code Online (Sandbox Code Playgroud)
当我再次尝试这个时,同样的事情发生了,但是使用相同的更新命令从RubyGems 1.6.2升级.我尝试了第三次,但是使用了下面的建议gem install rubygems-update && update_rubygems- 这只是导致安装失败,并让我使用了一个可用的RubyGems 1.6.2.
我想a)使用RubyGems 1.8.x,和b)撤消这些更改,而不是再次吹掉我的1.9.2安装.有任何想法吗?我在跑:
RubyGems Environment:
- RUBYGEMS VERSION: 1.6.2
- RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.7.0]
- INSTALLATION DIRECTORY: /Users/sloveless/.rvm/gems/ruby-1.9.2-p180
- RUBY EXECUTABLE: /Users/sloveless/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
- EXECUTABLE DIRECTORY: /Users/sloveless/.rvm/gems/ruby-1.9.2-p180/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-10
- GEM PATHS:
- /Users/sloveless/.rvm/gems/ruby-1.9.2-p180
- /Users/sloveless/.rvm/gems/ruby-1.9.2-p180@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org"]
- REMOTE SOURCES:
- http://rubygems.org
FWIW,今天(5月10日)在RubyGems错误回购中记录了一个类似的错误,我添加了类似的信息,这里
小智 5
宝石有这个问题1. {7..8}.*.
这是我们的生产堆栈:
远离升级宝石本身,或狗屎可能会破裂.我知道使用前沿是多么诱人,但它更像是在整个OR壁上大量出血.
如果你必须:
gem install rubygems-update -v 1.6.2 && update_rubygems sudo gem install rubygems-update -v 1.6.2 && sudo update_rubygems 如果使用RVM,请务必rvm gemset global先使用.
通常的警告适用于备份您的数据,gemsets,应用程序,不要在生产中尝试这一点.:)
它与 RVM 无关,因为我运行的是相同的版本。它也不是 Ruby 1.9.2,因为我运行的是相同的版本。
gem uninstall ...返回错误是不正常的。我已经在几台运行 RVM 和 1.9.2 的机器上完成了升级,并且 gem 本身继续正常运行。是的,我看到了已弃用的警告。
您可能gem update使用运行吗sudo?这可能会破坏它,因为您在 RVM 下运行,而 sudo 是一个主要的禁忌。
| 归档时间: |
|
| 查看次数: |
2946 次 |
| 最近记录: |