0

我正在尝试使用 ri 工具,但无法让它们工作。我也试过rvm docs generatervm docs generate-ri。两者都没有解决问题。我在 Mac OSx 版本 10.8.2 上。

谢谢

$ ri String
/Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/store.rb:546:in `load': undefined class/module Encoding (ArgumentError)
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/store.rb:546:in `load_cache'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/store.rb:545:in `open'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/store.rb:545:in `load_cache'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/ri/driver.rb:384:in `initialize'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/ri/paths.rb:54:in `each'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/ri/driver.rb:378:in `initialize'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/ri/driver.rb:355:in `new'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/lib/rdoc/ri/driver.rb:355:in `run'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/gems/rdoc-4.0.1/bin/ri:12
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/bin/ri:19:in `load'
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/bin/ri:19
    from /Users/zackwarburg/.rvm/gems/ree-1.8.7-2012.02/bin/ruby_noexec_wrapper:14
4

1 回答 1

1

看起来您的 rdoc (4.0.1) 版本非常新。正如@theTinMan 所指出的,如果可能,您可能希望将 ruby​​ 版本提升到 1.9.x 或 2.0.0。

或者,您可以尝试删除 4.0.1 并安装 3.12.2,这是 ruby​​gems 上最新的 3.x 变体。


我深入研究了源代码以确定rdoc正在尝试Marshal.load缓存文件。也许您想清除缓存并重新运行rvm docs generate-ri以确保缓存编码准确。

于 2013-07-11T03:33:04.003 回答