我该如何安装Ruby的ri文档?

27

我最近在Windows 7上安装了Ruby 1.9.1,但是显然它没有标准的ri文档。因此,当我运行'ri Array'时,会出现以下信息:

C:\>ri Array

Nothing known about Array

有没有一种方法可以安装这个文档,以便上述工作?

8个回答

37

如果其他平台的用户需要安装ri文档(就像我一样)。这篇文章提供了为什么以及如何做:

http://jstorimer.com/ri.html

命令是:

gem rdoc --all --ri --no-rdoc

我相信它不会安装Ruby核心的文档,但是对于已经安装的gem(可能已捆绑在一起),它会进行安装。 - x-yuri

24
如果您正在使用rvm,您应该执行rvm docs generate(或只需执行rvm docs generate-ri)。
有关rvm和ri的详细信息,请参见此信息(2011年8月)

3
该网站已不存在。 - Snowcrash
4
FYI:在我的系统上,“rvm docs generate”命令需要很长时间才能完成。因此请注意,或者耐心等待。 - robsch
链接答案不再像@Snowcrash指出的那样有效。这是有关该主题的官方rvm文档链接:https://rvm.io/rubies/docs - 3limin4t0r

10

对我来说,所有提出的解决方案都没有起作用。最终我找到的解决方案非常简单,因此我将在此留下它。(假设你正在运行ruby 2.2.4,在win7 x64上运行,如果这有关系的话)

(显然:必须安装并在PATH中设置ruby)

-打开cmd命令提示符

-$ gem install rdoc-data

-$ rdoc-data --install

完成了!运行以下命令以测试其是否有效:

-$ ri Array 这将为您提供有关该类的所有详细文档!

希望这个能帮到你!

附:我刚注意到这是Luis Lavena在评论中提出的解决方案,但他的评论对我来说不太清楚,所以我继续搜索。基本上这是同样的解决方案,但更清晰地解释了一下,以免其他人也遇到同样的问题 :)

干杯!


7
Ruby安装程序2.4.1.2(2017年)与以前相比没有太大变化。如果我运行ri Array,它会显示Array < Object,除此之外什么也没有。如果我运行ri "Array#each",我会得到熟悉的“没有找到相关信息”的消息。简而言之,Ruby核心和标准库的ri格式文档缺失。
以下是我获取核心/stdlib ri文档副本的步骤。当然,在此之前必须先安装Ruby。
  1. Github发行版页面中获取最接近我的版本的Ruby源代码。
  2. 将.zip或.tar.gz归档文件提取到某个文件夹中。
  3. 打开cmd.exe/Powershell,cd到该文件夹并运行rdoc --all --ri
    • 此命令递归解析当前目录中的.c文件、.rb文件和其他一些文件类型,并在~/.rdoc目录中生成ri文档。
    • 在我的i7-3520M处理器笔记本电脑上完成此操作大约需要5分钟,没有错误。
  4. 删除归档文件和包含源代码的目录,因为我们不再需要它们。
现在,如果您尝试运行ri Arrayri "Array#each",您将得到完整的文档。
简言之,对于与你安装版本相同的Ruby源代码目录中运行rdoc --all --ri命令即可获得核心/stdlib ri文档。

在我的情况下(Windows 10,Ruby 2.6.5),我必须使用--op选项来指定目录,例如rdoc --all --ri --no-rdoc --op tmp/.rdoc(否则命令会抱怨已经存在一个名为“doc”的目录,但它不是RDoc目录)。然后我将生成的.rdoc目录移动到我的主目录中。之后,ri Array也对我起作用了! - Franco

5

看起来您已经安装了由RubyInstaller项目分发的Ruby 1.9.1。

您可以使用安装程序附带的Windows帮助文件(CHM)而不是ri文档。

RI文档的问题是某些版本的RDoc生成它时存在问题,并且生成了超过10,000个文件,这会严重减慢安装程序的速度。


那么没有办法单独下载这些文件吗? - Grant Crofton
2
这不是问题的答案。你应该发表评论。 - Hovis Biddle

5

RVM不会自动生成并安装每个Ruby的ri/rdoc文档。您可以使用以下命令生成: rvm docs generate


0

所有的Ruby文档都在http://www.ruby-doc.org上。

因此,数组文档位于:

http://ruby-doc.org/core/classes/Array.html

我从未在Windows上尝试过,但因为它说“没有关于X的信息”,所以并不是说它没有安装,只是没有任何内容。

尝试安装一个gem,然后可以使用ri GEM_CLASS,这应该提供定义,让我们看看是否缺少文档或者ri没有在正确的位置查找。


我刚刚安装了Rake,运行以下命令:

C:>ri Rake ---------------- Class: Rake

我发现ri文档没有被包含在内,这篇文章讨论了这个问题:https://dev59.com/8nI-5IYBdhLWcg3w-9oJ#1588642虽然这不是很重要,但我正在阅读的书中提到了它,所以我想查看一下。
- Grant Crofton

0

在Docker下,您可能会遇到此问题。官方的docker镜像附带no 文档,并且似乎禁用了安装gem文档。

如果镜像和系统的ruby版本匹配(具体来说,是RbConfig::CONFIG["ruby_version"],例如ruby-2.6.12.6.0),则可以执行以下操作:

# apk add ruby-doc
# cp -r /usr/share/ri /usr/local/share/ri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接