【问题标题】:How to make --no-ri --no-rdoc the default for gem install?如何使 --no-ri --no-rdoc 成为 gem 安装的默认值?
【发布时间】:2010-11-25 18:53:25
【问题描述】:

我不使用安装在我的机器或我处理的服务器中的 gem 的 RI 或 RDoc 输出(我使用其他文档方式)。

我安装的每个 gem 都默认安装 RI 和 RDoc 文档,因为我忘记设置 --no-ri --no-rdoc

有没有办法将这两个标志设为默认值?

【问题讨论】:

  • 这不是一个好主意。我最近需要在路上写代码,当我启动 gem server 时,我记得我在我的 $HOME/.gemrc 中有这些代码,这真的要了我的命......谷歌并不总是在那里。
  • 取决于上下文。如果您可以绑定或在不需要 gem 文档的服务器上执行此操作,这是一个好主意。
  • 使用 pry 可以使用show-source 作为生成文档的替代方案。它将显示内联 cmets,它们通常与 ri/rdoc 的内容相同。

标签: ruby rubygems


【解决方案1】:

您只需将以下行添加到您的本地 ~/.gemrc 文件(它位于您的 home 文件夹中):

gem: --no-document

通过

echo 'gem: --no-document' >> ~/.gemrc

或者您可以将此行添加到全局 gemrc 配置文件中。

以下是如何找到它(在 Linux 中):

strace gem source 2>&1 | grep gemrc

--no-document 选项记录在 the RubyGems CLI Reference 中。

【讨论】:

  • 是否要在不编辑 /etc/skel 和每个用户的主目录的情况下使其成为系统范围的默认设置?
  • /etc/gemrc 对我不起作用,但 .gemrc 起作用了。我想知道它是否特定于 rvm 它不读取系统 gemrc?
  • 是的,我正在使用 RVM,/etc/gemrc 也不适用于我。
  • @gdelfino 的回答是最不突兀的
  • 已弃用 - 请参阅我的回答
【解决方案2】:

来自RVM’s documentation

只需将此行添加到您的~/.gemrc/etc/gemrc

gem: --no-document

注意:原来的答案是:

install: --no-rdoc --no-ri 
update: --no-rdoc --no-ri 

这不再有效; RVM 文档已经更新,因此当前只包含 gem 指令的答案是正确的。

【讨论】:

  • Since RubyGems version 2.0.0preview2,您可以使用 --no-document--document=rdoc 仅用于 rdoc。
  • 我不同意 @mpapis 在 2013 年 6 月 20 日的编辑。他完全改变了这个答案,很多人投票支持它,因为他们认为它比公认的答案更好。发布此答案的人明确写道,他们不想将这两个选项添加到每个 gem 命令中,因为它会破坏某些命令。在@mpapis 完全改变答案之前,答案中的代码是:install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri@mpapis,你为什么改变了 RVM 文档,也改变了这个答案?
  • 因为它是真的,没有理由保留两条单独的行,跟踪多项目兼容性很棘手 - 当我们发现某些东西关闭时,RVM 文档有时会更新 - 就像在这种情况下, ruby​​gems 行为错误是不正确的,使用gem: 而不是两个单独的条目很好。
  • 使用ruby -e "require 'etc';puts Etc.sysconfdir" 确定gemrc 配置文件的路径。
【解决方案3】:

Windows 7 用户的 oneliner:

(echo install: --no-document && echo update: --no-document) >> c:\ProgramData\gemrc

【讨论】:

    【解决方案4】:

    对于 Windows 用户,Ruby 不设置 .gemrc 文件。因此,您必须在您的主目录 (echo %USERPROFILE%) 中创建 .gemrc 文件并在其中放入以下行:

    gem: --no-document
    

    正如之前的答案中已经提到的,不要使用 --no-ri 和 --no-rdoc 会导致它被弃用。自己看吧:

    gem help install
    

    【讨论】:

      【解决方案5】:

      在 Linux(可能还有 Mac)上:

      echo 'gem: --no-document' >> ~/.gemrc
      

      这个单线曾经在 cmets 这里,但不知何故消失了。

      【讨论】:

      • 您应该使用>>,以防用户已经拥有~/.gemrc
      • 这个echo 'gem: --no-doc --no-ri' >> ~/.gemrc和你写的有区别还是两者效果一样?
      • @Lykos --no-doc --no-ri 已弃用(有关选项,请参阅guides.rubygems.org/command-reference/#gem_install
      【解决方案6】:

      如上所述,将gem: --no-document 放入您的gem 文件中。但是,系统范围的 gemrc 不一定会进入/etc/gemrc。如果您使用的是 RVM,或者您在 /usr/local/bin 下安装了 Ruby,则需要将其放在不同的位置。您可以通过运行irb 并键入...来找到此位置...

      require 'rubygems'
      Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE
      

      请参阅here 上的原始帖子。

      【讨论】:

      • Oneliner:ruby -rrubygems -e'puts Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE'
      【解决方案7】:

      在 Windows7 上 .gemrc 文件不存在,您可以让 Ruby 像这样创建一个(在资源管理器中这样做并不容易)。

      gem sources --add http://rubygems.org
      

      您必须确认(这是不安全的)。 现在该文件已在您的 userprofile 文件夹 (c:\users\) 中创建

      您可以编辑文本文件以删除您添加的源,也可以使用删除它

      gem sources --remove http://rubygems.org
      

      【讨论】:

        【解决方案8】:

        请注意,根据新的guides--no-ri--no-rdoc 已被弃用。推荐的方法是在~/.gemrc/etc/gemrc 中使用--no-document

        install: --no-document
        update: --no-document
        

        gem: --no-document
        

        【讨论】:

          【解决方案9】:

          在 Windows XP 上,.gemrc 文件的路径是

          c:\Documents and Settings\All Users\Application Data\gemrc 
          

          而且这个文件是默认不创建的,你应该自己创建。

          【讨论】:

          • 在 Windows 7 下是 C:\ProgramData\gemrc
          • win7 位置适用于 windows 200。还要确保您已关闭“隐藏已知文件类型的扩展名”,它不会拾取 gemrc.txt.... facepalm
          【解决方案10】:

          一步一步:

          从终端创建/编辑 .gemrc 文件:

          vi  ~/.gemrc
          

          您将打开一个名为 vi 的编辑器。 粘贴:

          gem: --no-ri --no-rdoc
          

          点击“esc”按钮。

          输入:

          :exit
          

          你可以用这个命令检查一切是否正确:

          sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit ~/.gemrc
          

          【讨论】:

          • 澄清一下,最后一个命令是特定于 OS X 的。它在文本编辑器中打开~/.gemrc 文件。
          • ~ 是主目录的表示。 (以下大写的东西是环境变量) 检查.gemrc 目录的顺序: 1. 如果已定义,请使用 HOME。 2. 如果已定义,请使用 USERPROFILE。 3. 将 HOMEDRIVE 和 HOMEPATH 一起使用(如果已定义)。 4. 使用通过让 Ruby 展开“~”获得的路径。 5. 如果您使用的是 Windows 机器,请使用“C:/”。也就是说:docs.rubygems.org/read/chapter/12
          • 您不需要sudo 来编辑您自己用户的~/.gemrc
          【解决方案11】:

          # /home/{user}/.gemrc

          ---
          :update_sources: true
          :sources:
          - http://gems.rubyforge.org/
          - http://gems.github.com
          :benchmark: false
          :bulk_threshold: 1000
          :backtrace: false
          :verbose: true
          gem: --no-ri --no-rdoc
          

          http://webonrails.com/2008/12/03/skiping-installation-of-ri-and-rdoc-documentation-while-installing-gems/

          【讨论】:

          • 感谢这个示例,非常适合帮助我删除我在某些时候复制和粘贴的嵌入式 Ruby,然后在 Ruby 1.9.2 下安装 RubyGems 1.8.10 时导致心理错误。跨度>
          • 请不要发布“Google 上的第一个结果”回复。谷歌上的第一个结果现在显示了你的回复,自我证明了你为什么不应该这样做。当然,谢谢您的回答。
          • 实际上,“Google 上的第一个结果”显示:“Google 上的第一个结果”显示:“Google 上的第一个结果”显示:“”... 错误:堆栈溢出。
          • 我必须感谢史蒂夫的评论(上图)。对于为什么我无法安装最新的 RubyGems,我感到很困惑。原来我也有一个格式错误的 .gemrc 文件。我不断收到此错误:../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse': could't parse YAML at line 2 column 10 ( Psych::SyntaxError)
          • 如果你在 google 中输入“google”,你会破坏互联网
          【解决方案12】:

          您可以使用.gemrc 配置文件指定默认选项。

          Documentation about gem configuration file

          【讨论】:

            猜你喜欢
            • 2010-12-19
            • 2011-11-24
            • 1970-01-01
            • 2011-07-28
            • 2011-09-07
            • 2011-02-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多