gpt4 book ai didi

ruby - 升级到 ruby​​gems 1.8.x 后如何让 `gem` 再次工作?

转载 作者:数据小太阳 更新时间:2023-10-29 07:16:26 26 4
gpt4 key购买 nike

太棒了,我使用 gem upgrade --system 从 1.7.2 升级到 RubyGems 1.8.1,然后立即运行 gem pristine --all --no-extensions按照 Eric Hodel's blog 上的建议.在运行 gem 命令时出现错误后,我用谷歌搜索了一下,找到了一些关于 gem uninstall 带有弃用警告的 g​​em 的建议,但后来意识到我不能,因为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>'

当我再次尝试此操作时发生了同样的事情,但使用相同的更新命令从 RubyGems 1.6.2 升级。我第 3 次尝试,但使用了下面的建议来执行 gem install ruby​​gems-update && update_rubygems——这导致安装失败,并让我获得可用的 RubyGems 1.6.2。

我想 a) 使用 RubyGems 1.8.x,和 b) 撤消这些更改,而不是不得不放弃我的 1.9.2 安装再次。有任何想法吗?我在跑:

  • rvm 1.6.5
  • 核磁共振 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 错误 repo 中记录了一个类似的错误,我向其添加了类似的信息,here

最佳答案

gems 1.{7..8}.*.有这个问题

这是我们的生产堆栈:

  • MRI 1.9.2 和 JRuby 1.6.1
  • RVM 1.6.5
  • gem 1.6.2

远离升级 gem 本身,否则狗屎可能会坏掉。我知道使用前沿技术是多么诱人,但这更像是整个手术室大出血。墙壁。

如果必须:

  • 仅限当前用户(更常见):gem install ruby​​gems-update -v 1.6.2 && update_rubygems
  • 系统范围(注意):sudo gem install ruby​​gems-update -v 1.6.2 && sudo update_rubygems

如果使用 RVM,请务必先rvm gemset global

通常的注意事项适用,例如备份您的数据、gemsets、应用程序,并且不要在生产中尝试这样做。 :)

关于ruby - 升级到 ruby​​gems 1.8.x 后如何让 `gem` 再次工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5932984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com