How to make --no-ri --no-rdoc the default for gem install?
Asked Answered
I

13

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?

Ideograph answered 4/9, 2009 at 21:48 Comment(3)
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.Overslaugh
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.Shillelagh
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.Gouty
D
1303

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.

Disillusion answered 6/9, 2009 at 16:10 Comment(11)
Anyway to make this a system wide default without editing /etc/skel and every user's home directory?Hamitic
/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?Nasty
Yea I'm using RVM and /etc/gemrc doesn't work for me either.Harrisharrisburg
I think opinion was split on the default so it was never changed.Harrisharrisburg
@gdelfino's answer is the least obtrusiveHeptarchy
deprecated - please see my answerDagenham
Use ruby -e "require 'etc';puts Etc.sysconfdir" to determine the path to your gemrc config file.Zahn
If ruby was compiled with a prefix like --prefix=/opt/ruby, then the config file path will be /opt/ruby/etc/gemrc (confirmed with ruby 2.3.1)Trioxide
I didn't have any gemrc but my system was quite happy to use a brand new one at ~/.gemrc.Sixtasixteen
On FreeBSD, truss gem source 2>&1 | grep gemrc | awk -F '"' '{print $2}' is the magic incantation to give you the relevant paths directly.Flue
To find your gemrc file, run gem env and find the displayed SYSTEM CONFIGURATION DIRECTORY output field. Create or edit the gemrc file in that directory.Impious
E
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.

Excurved answered 5/10, 2011 at 13:44 Comment(8)
Since RubyGems version 2.0.0preview2, you can instead use --no-document or --document=rdoc for just rdoc.Erection
/etc/gemrc doesn't seem to work in practice, and the documentation agrees with it.Plangent
/etc/gemrc will work for RVMs binary rubies because they use --sysconfdir=/etc you could build your rubies with it too like this: rvm install 2.0.0 -C --sysconfdir=/etc to get /etc/gemrc working for compiled rubies, otherwise use $MY_RUBY_HOME/gemrc.Dale
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 @Dale 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?Recto
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.Dale
RVM docs say to use rvm_gem_options in ~/.rvmrc ie. to disable docs export rvm_gem_options="--nodocument" or to enable docs export rvm_gem_options="--document rdoc,ri"Sewn
Use ruby -e "require 'etc';puts Etc.sysconfdir" to determine the path to your gemrc config file.Zahn
This one is deprecated see guides.rubygems.org/command-reference/#gem-installExsanguine
D
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
Dagenham answered 19/6, 2013 at 21:2 Comment(0)
W
104

On Linux (and probably Mac):

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

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

Whose answered 4/9, 2009 at 21:49 Comment(3)
You should use >> in case the user already has a ~/.gemrc.Nobel
Is there a difference between this echo 'gem: --no-doc --no-ri' >> ~/.gemrc and the one you wrote or both have same effect?Slue
@Lykos --no-doc --no-ri is deprecated (see guides.rubygems.org/command-reference/#gem_install for options)Whose
H
44

/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/

Hussein answered 18/9, 2010 at 7:6 Comment(6)
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.Merc
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.Nasty
Actually, "first result on Google" shows: ""first result on Google" shows: ""first result on Google" shows: ""... ERROR: Stack Overflow.Flatter
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)Tenrec
and if you type "google" into google you'll break the internetFong
--- ` :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 :)Klotz
M
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.

Mailer answered 28/6, 2010 at 19:15 Comment(2)
Under Windows 7 it's C:\ProgramData\gemrcMailer
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.... facepalmGuib
M
16

A oneliner for the windows 7 users:

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

Mummery answered 12/9, 2013 at 5:28 Comment(0)
P
10

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

Documentation about gem configuration file

Platter answered 5/9, 2009 at 0:23 Comment(0)
J
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.

Junina answered 6/4, 2014 at 1:36 Comment(1)
Oneliner: ruby -rrubygems -e'puts Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE'Champion
W
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
Walkthrough answered 29/12, 2011 at 21:50 Comment(3)
To clarify, that last command is OS X specific. It opens the ~/.gemrc file in a texteditor.Wampum
~ 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/12Hideaway
You shouldn't need sudo to edit your own user's ~/.gemrc.Bondwoman
T
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
Tiber answered 21/3, 2014 at 17:53 Comment(0)
C
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
Cao answered 28/9, 2016 at 7:53 Comment(0)
K
0

~/.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.

Klotz answered 8/4, 2023 at 14:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.