1096

I don't use the RI or RDoc output from the gems I install in my machine or in the servers I handle (I use other means of documentation).

Every gem I install installs RI and RDoc documentation by default, because I forget to set --no-ri --no-rdoc.

Is there a way to make those two flags the default?

3
  • 8
    It's not a good idea though. I recently needed to write code on the road and when I launched gem server I remembered that I had these in my $HOME/.gemrc and really killed me... Google isn't always there. Commented Jan 13, 2014 at 0:16
  • 7
    Depends on the context. It's a great idea if you can tether or you're doing this on a server that doesn't need gem documentation. Commented May 28, 2014 at 13:50
  • 5
    with pry one can use show-source as an alternative to generated docs. It will show inline comments, which are generally the same content as the ri/rdoc anyway. Commented May 11, 2016 at 20:59

13 Answers 13

1306

You just add the following line to your local ~/.gemrc file (it is in your home folder):

gem: --no-document 

by

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

or you can add this line to the global gemrc config file.

Here is how to find it (in Linux):

strace gem source 2>&1 | grep gemrc 

The --no-document option is documented in the RubyGems CLI Reference.

Sign up to request clarification or add additional context in comments.

11 Comments

Anyway to make this a system wide default without editing /etc/skel and every user's home directory?
/etc/gemrc didn't work for me, but .gemrc did. I wonder if it's rvm specific that it doesn't read the system gemrc?
Yea I'm using RVM and /etc/gemrc doesn't work for me either.
@gdelfino's answer is the least obtrusive
deprecated - please see my answer
|
507

From RVM’s documentation:

Just add this line to your ~/.gemrc or /etc/gemrc:

gem: --no-document 

Note: The original answer was:

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

This is no longer valid; the RVM docs have since been updated, thus the current answer to only include the gem directive is the correct one.

8 Comments

Since RubyGems version 2.0.0preview2, you can instead use --no-document or --document=rdoc for just rdoc.
I disagree with @mpapis's edit on Jun 20, 2013. He totally changed this answer and there were lots of people that voted for it because they thought it was better than the accepted answer. The person who posted this answer explicitly wrote that they do not want to add those two options to every gem command because it breaks some commands. Before @mpapis totally changed the answer, the code in the answer was: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis, why did you change the RVM documentation and also change this answer?
because it is true, there is no reason to keep two separate lines, keeping track of multi project compatibility is tricky - and the RVM docs get sometimes updated when we find something is off - like in this case, it is not true that rubygems would behave wrong, it's all fine to use gem: instead of two separate entries.
Use ruby -e "require 'etc';puts Etc.sysconfdir" to determine the path to your gemrc config file.
|
190

Note that --no-ri and --no-rdoc have been deprecated according to the new guides. The recommended way is to use --no-document in ~/.gemrc or /etc/gemrc.

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

or

gem: --no-document 

Comments

105

On Linux (and probably Mac):

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

This one-liner used to be in comments here, but somehow disappeared.

3 Comments

You should use >> in case the user already has a ~/.gemrc.
Is there a difference between this echo 'gem: --no-doc --no-ri' >> ~/.gemrc and the one you wrote or both have same effect?
@Lykos --no-doc --no-ri is deprecated (see guides.rubygems.org/command-reference/#gem_install for options)
45

/home/{user}/.gemrc

--- :update_sources: true :sources: - https;//rubygems.org - https://gems.rubyforge.org/ - https://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/

6 Comments

Thanks for this example, perfect to help me strip out the embedded Ruby that I copied & pasted at some point and then resulted in psych errors while installing RubyGems 1.8.10 under Ruby 1.9.2.
Please don't post "first result on Google" replies. The first result on Google now shows your reply, self-proving why you shouldn't do this. Thanks, of course, for your answer.
Actually, "first result on Google" shows: ""first result on Google" shows: ""first result on Google" shows: ""... ERROR: Stack Overflow.
I have to add my thanks for steve's comment (above). I was pulling my hair out as to why I could not install the latest RubyGems. Turns out I had a malformed .gemrc file as well. I kept getting this error: ../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse': couldn't parse YAML at line 2 column 10 (Psych::SyntaxError)
--- ` :update_sources: true ` ` :sources: ` - rubygems.org #- gems.rubyforge.org #- gems.github.com :benchmark: false` :bulk_threshold: 1000 ` :backtrace: false ` :verbose: true` ` gem: --no-document` ` With https :)
|
33

On Windows XP the path to the .gemrc file is

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

and this file is not created by default, you should create it yourself.

2 Comments

Under Windows 7 it's C:\ProgramData\gemrc
the win7 location works for windows 200. Also make sure you have "Hide extensions for known file types" off it wont pick up gemrc.txt.... facepalm
16

A oneliner for the windows 7 users:

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

Comments

10

You can specify default options using the .gemrc configuration file.

Documentation about gem configuration file

Comments

7

As mentioned above, put gem: --no-document in your gem file. However, the system-wide gemrc will not always necessarily go into /etc/gemrc. If you are using RVM, or you have Ruby installed under /usr/local/bin, it needs to go in a different location. You can find this location by running irb and typing...

require 'rubygems' Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE 

See the original post on this over here.

1 Comment

Oneliner: ruby -rrubygems -e'puts Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE'
5

Step by steps:

To create/edit the .gemrc file from the terminal:

vi ~/.gemrc 

You will open a editor called vi. paste in:

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

click 'esc'-button.

type in:

:exit 

You can check if everything is correct with this command:

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

3 Comments

To clarify, that last command is OS X specific. It opens the ~/.gemrc file in a texteditor.
~ is representation for home directory. (the following stuff in caps are environment variables) Order of checking directories for .gemrc: 1. Use HOME if it is defined. 2. Use USERPROFILE if it is defined. 3. Use HOMEDRIVE and HOMEPATH together if they are defined. 4. Use the path you get by having Ruby expand “~”. 5. Use “C:/” if you are on a Windows machine. That is per: docs.rubygems.org/read/chapter/12
You shouldn't need sudo to edit your own user's ~/.gemrc.
5

On Windows7 the .gemrc file is not present, you can let Ruby create one like this (it's not easy to do this in explorer).

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

You will have to confirm (it's unsafe). Now the file is created in your userprofile folder (c:\users\)

You can edit the textfile to remove the source you added or you can remove it with

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

Comments

3

For Windows users, Ruby doesn't set up .gemrc file. So you have to create .gemrc file in your home directory (echo %USERPROFILE%) and put following line in it:

gem: --no-document 

As already mentioned in previous answers, don't use --no-ri and --no-rdoc cause its deprecated. See it yourself:

gem help install 

Comments

1

~/.gemrc file

--- gem: --no-document :update_sources: true :sources: - https://rubygems.org/ :benchmark: false :bulk_threshold: 1000 :backtrace: false :verbose: true 

Use HTTPS and a known source. An improvement over the above answer.

PS: I tried to post the comment and could not get it to format nicely. Finally resorted to posting a new answer.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.