我正在尝试使用ri工具,但无法使它们正常工作。我试过rvm docs generate
和rvm docs generate-ri
。两者都没有解决这个问题。我使用的是10.8.2版本的Mac操作系统。
感谢
$ 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
看起来您的rdoc(4.0.1)版本非常新。正如@TinMan所指出的,如果可能的话,您可能希望将ruby版本提升到1.9.x或2.0.0。
或者,您可以尝试删除4.0.1并安装3.12.2,这是rubygems上最新的3.x变体。
我深入研究了源代码,以确定rdoc
正在尝试Marshal.load
缓存文件。也许您想清除缓存并重新运行rvm docs generate-ri
,以确保缓存编码是准确的。