我最近将我的 Mac Mini 更新到 OS 10.8 Mountain Lion,并且在 RVM 1.16.8 中使用 Ruby gems,Ruby 1.9.3p194 不再有效。
这是错误的简明版本:
`load_api_keys': undefined method `key?' for #<String:0x007f865a928a28> (NoMethodError)
当我运行任何类似的命令gem install bundler
或gem -v
出现以下错误时:
➜ ~ gem
/Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:227:in `load_api_keys': undefined method `key?' for #<String:0x007f865a928a28> (NoMethodError)
from /Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/config_file.rb:208:in `initialize'
from /Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:78:in `new'
from /Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:78:in `do_configuration'
from /Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:51:in `run'
from /Users/brettchalupa/.rvm/rubies/ruby-1.9.3-p194/bin/gem:25:in `<main>'
➜ ~ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.2.0]
➜ ~ rvm -v
rvm 1.16.8 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
我已经进入并注释掉了load_api_keys
使事情正常运行的冲突方法调用,但它随后破坏了与 rubygems.org 的任何交互。
问题是第 227 行,if @api_keys.key? :rubygems_api_key then
def load_api_keys
@api_keys = if File.exist? credentials_path then
load_file(credentials_path)
else
@hash
end
if @api_keys.key? :rubygems_api_key then
@rubygems_api_key = @api_keys[:rubygems_api_key]
@api_keys[:rubygems] = @api_keys.delete :rubygems_api_key unless @api_keys.key? :rubygems
end
end
删除 RVM 并尝试安装不同的 Ruby 后,我还没有找到解决此问题的方法。我不想简单地注释掉删除我使用的功能的东西。
如果有人可以就导致此问题的原因以及如何解决此问题提供任何见解,将不胜感激。