gemrcの--no-riと--no-rdoc、deprecatedなoptionなのでみなおしたほうがいいかもですよ

  • 142
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

背景

最近ではRubyDoc.infoなどのオンラインドキュメントや、Dashなどのツールを使って読む人も多く、localにdocumentをinstallする時間を省く方を多いと思います。
そこで、いろいろなブログ記事を読み、.gemrc--no-ri--no-rdocの説明の部分をコピペして使ってる方も多いと思います。私もそうしてました。
しかし、RubyGems.orggem-installをみると、なんと--no-ri--no-rdocがdeprecatedになっています。
表面上問題がないように見えるでしょうが、rubygemsのversionがあがり、万一これらのoptionがなくなったとき、急にdocumentがinstallされるようになり、gemのinstall時間は長くなり、stackoverflowにはhelpの記事が舞うのではないでしょうか。

そのように慌てる前に新しい設定に書き換えましょう。

設定

以下を~/.gemrcとして保存します。

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

ただし、ruby1.9標準添付のgemは--no-documentが存在しないようなので、古いgemを使う人はgem help installなどを使い使用する環境でoptionが有効なのを確認してから設定しましょう。
@paselaさん情報ありがとうございます

解説

設定の書き方はgem-environmentを見ると書いてあります。
上記の設定は以下の書き方のうち、<gem_command>に相当します。つまりgem installgem updateの実行のとき、いつも--no-documentのオプションをつけるようになります。

:sources: A YAML array of remote gem repositories to install gems from
:verbose: Verbosity of the gem command. false, true, and :really are the
levels
:update_sources: Enable/disable automatic updating of repository metadata
:backtrace: Print backtrace when RubyGems encounters an error
:gempath: The paths in which to look for gems
:disable_default_gem_server: Force specification of gem server host on push
<gem_command>: A string containing arguments for the specified gem command

おまけ

いつdeprecatedになったんだろうと思って調べたところ、以下のcommitでdeprecatedになってるのが確認できました。なんと3年前のcommit。
https://github.com/rubygems/rubygems/commit/0d22d602

3年もこのままだからもしかしたら大丈夫かも……とか思っちゃうので、deprecatedになってからの経過や今後について詳しい方がいたら詳しい話をお聞きしたいです。

参考リンク