如何将--no-ri --no-rdoc设置为gem install的默认设置?


1040

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

默认情况下,我安装的每个gem都会安装RI和RDoc文档,因为我忘记了set --no-ri --no-rdoc

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


8
不过,这不是一个好主意。最近,我需要在旅途中编写代码,当我发布代码时,我gem server想起了我的代码,$HOME/.gemrc并真的把我杀死了……Google并不总是存在。
atmosx 2014年

7
取决于上下文。如果您可以系绳,或者是在不需要gem文档的服务器上执行此操作,则是个好主意。
松果先生(Sir-pinecone)

3
撬开后,可以show-source替代生成的文档。它将显示内联注释,这些注释通常与ri / rdoc的内容相同。
最大整理者'16

Answers:


1220

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

gem: --no-document

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

以下是查找方法(在Linux中):

strace gem source 2>&1 | grep gemrc

2
无论如何要使它成为系统范围的默认值,而无需编辑/ etc / skel和每个用户的主目录?
Hackeron

41
在这里,您可以/ etc / gemrc
Jirapong 2011年

3
/ etc / gemrc不适用于我,但是.gemrc可以。我想知道它是否特定于rvm而不读取系统gemrc吗?
wjl 2011年

5
@gdelfino的回答是最不引人注意的
Ryan

4
已弃用-请参阅我的答案
James Lim

491

RVM的文档中

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

gem: --no-document

注意:原始答案是:

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

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


12
从RubyGems版本2.0.0preview2开始,您可以改用--no-document--document=rdoc仅用于rdoc。
iono

3
我不同意@mpapis在2013年6月20日所做的编辑。他完全更改了此答案,并且很多人投票支持它,因为他们认为它比公认的答案更好。发表此答案的人明确地写道,他们不想将这两个选项添加到每个gem命令中,因为这会破坏某些命令。在@mpapis完全更改答案之前,答案中的代码为: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis,为什么更改了RVM文档并更改了答案?
David Grayson 2013年

1
因为这是真的,所以没有理由分开两行,跟踪多项目兼容性很棘手-并且RVM文档有时会在发现问题后得到更新-像在这种情况下,rubygems并不是真的行为有误,最好使用gem:两个单独的条目代替。
mpapis 2013年

3
使用ruby -e "require 'etc';puts Etc.sysconfdir"以确定路径到您的gemrc配置文件。
Michael Mims


185

请注意,--no-ri并且--no-rdoc已根据新指南弃用。推荐的方法是--no-document~/.gemrc或中使用/etc/gemrc

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

要么

gem: --no-document


44

#/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时导致出现心理错误。
stevenhaddox 2011年

17
请不要发布“在Google上的第一个结果”答复。现在,在Google上的第一个结果显示了您的回复,从而证明了您不应该这样做的原因。当然,谢谢您的回答。
wjl 2011年

26
实际上,“在Google上的第一个结果”显示:“在Google上的第一个结果”显示:“在Google上的第一个结果”显示:“” ...错误:堆栈溢出。
费利克斯Saparelli

我必须感谢史蒂夫的评论(上文)。关于为什么无法安装最新的RubyGems,我一直在发毛。原来,我还有一个格式错误的.gemrc文件。我不断收到此错误:../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:在'parse'中:无法在第2行第10列解析YAML( Psych :: SyntaxError)
wchrisjohnson 2011年

33

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

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

并且该文件不是默认创建的,您应该自己创建。


20
在Windows 7下为C:\ ProgramData \ gemrc
Viachaslau Tysianchuk 2010年

win7位置适用于Windows200。另外,请确保已关闭“隐藏已知文件类型的扩展名”,否则它将无法接收gemrc.txt...。facepalm
jtzero 2012年

16

Windows 7用户的oneliner:

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



6

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

require 'rubygems'
Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE

这里查看原始文章。


1
Oneliner:ruby -rrubygems -e'puts Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE'
Andrew Burns

5

分步操作:

要从终端创建/编辑.gemrc文件,请执行以下操作:

vi  ~/.gemrc

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

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

点击“ esc”按钮。

输入:

:exit

您可以使用以下命令检查一切是否正确:

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

2
为了明确起见,最后一个命令特定于OSX。它将~/.gemrc在文本编辑器中打开文件。
马丁

1
〜是主目录的表示。(以下大写字母是环境变量)检查.gemrc目录的顺序:1.如果已定义,则使用HOME。2.如果已定义,请使用USERPROFILE。3.如果已定义,请同时使用HOMEDRIVE和HOMEPATH。4.使用让Ruby展开“〜”获得的路径。5.如果您在Windows计算机上,请使用“ C:/”。那是每人:docs.rubygems.org/read/chapter/12
加里·S·韦弗

您无需sudo编辑自己用户的~/.gemrc
jbbuckley

5

在Windows7上,不存在.gemrc文件,您可以让Ruby创建这样的文件(在资源管理器中很难做到)。

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

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

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

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

3

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

gem: --no-document

正如前面的答案中已经提到的那样,请勿使用--no-ri和--no-rdoc来弃用它。自己看看:

gem help install
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.