Làm cách nào để biến --no-ri --no -rdoc thành mặc định cho cài đặt gem?


1041

Tôi không sử dụng đầu ra RI hoặc RDoc từ các loại đá quý tôi cài đặt trong máy hoặc trong các máy chủ tôi xử lý (tôi sử dụng các phương tiện tài liệu khác).

Mỗi viên ngọc tôi cài đặt đều cài đặt tài liệu RI và RDoc theo mặc định, vì tôi quên cài đặt --no-ri --no-rdoc.

Có cách nào để làm cho hai lá cờ đó mặc định không?


8
Đó không phải là một ý tưởng tốt mặc dù. Gần đây tôi cần viết mã trên đường và khi tôi khởi chạy, gem servertôi nhớ rằng tôi có những thứ này trong tôi $HOME/.gemrcvà thực sự đã giết tôi ... Google không phải lúc nào cũng ở đó.
atmosx

7
Phụ thuộc vào bối cảnh. Đó là một ý tưởng tuyệt vời nếu bạn có thể buộc hoặc bạn đang làm điều này trên một máy chủ không cần tài liệu đá quý.
sir-pinecone

3
với pry người ta có thể sử dụng show-sourcenhư là một thay thế cho các tài liệu được tạo ra. Nó sẽ hiển thị các bình luận nội tuyến, thường là cùng một nội dung với ri / rdoc.
tối đa pleaner

Câu trả lời:


1221

Bạn chỉ cần thêm dòng sau vào ~/.gemrctệp cục bộ của bạn (nó nằm trong thư mục nhà của bạn ):

gem: --no-document

hoặc bạn có thể thêm dòng này vào gemrctập tin cấu hình toàn cầu .

Đây là cách tìm nó (trong Linux):

strace gem source 2>&1 | grep gemrc

2
Dù sao để làm cho hệ thống này mặc định toàn hệ thống mà không cần chỉnh sửa / etc / skel và mọi thư mục chính của mọi người dùng?
Hackeron

41
ở đây bạn đi / etc / gemrc
Jirapong

3
/ etc / gemrc không hoạt động với tôi, nhưng .gemrc đã làm. Tôi tự hỏi nếu nó rvm cụ thể rằng nó không đọc hệ thống gemrc?
wjl

5
Câu trả lời của @ gdelfino là ít gây khó chịu nhất
Ryan

4
không tán thành - vui lòng xem câu trả lời của tôi
James Lim

492

Từ tài liệu của RVM :

Chỉ cần thêm dòng này vào ~/.gemrchoặc /etc/gemrc:

gem: --no-document

Lưu ý: Câu trả lời ban đầu là:

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

Điều này không còn hiệu lực; các tài liệu RVM đã được cập nhật, do đó, câu trả lời hiện tại chỉ bao gồm lệnh gemlà câu trả lời đúng.


12
Kể từ phiên bản RubyGems 2.0.0preview2 , thay vào đó, bạn có thể sử dụng --no-documenthoặc --document=rdocchỉ cho ndoc.
iono

3
Tôi không đồng ý với chỉnh sửa của @ mpapis vào ngày 20 tháng 6 năm 2013. Anh ấy đã thay đổi hoàn toàn câu trả lời này và có rất nhiều người đã bỏ phiếu cho nó vì họ nghĩ rằng nó tốt hơn câu trả lời được chấp nhận. Người đã đăng câu trả lời này đã viết rõ ràng rằng họ không muốn thêm hai tùy chọn đó vào mỗi lệnh gem vì nó phá vỡ một số lệnh. Trước khi @mpapis thay đổi hoàn toàn câu trả lời, mã trong câu trả lời là: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis, tại sao bạn thay đổi tài liệu RVM và cũng thay đổi câu trả lời này?
David Grayson

1
bởi vì đó là sự thật, không có lý do gì để giữ hai dòng riêng biệt, việc theo dõi khả năng tương thích đa dự án là khó khăn - và các tài liệu RVM đôi khi được cập nhật khi chúng tôi tìm thấy thứ gì đó bị tắt - như trong trường hợp này, không phải là rubygems hành xử sai, tất cả đều tốt để sử dụng gem:thay vì hai mục riêng biệt.
mpapis

3
Sử dụng ruby -e "require 'etc';puts Etc.sysconfdir"để xác định đường dẫn đến gemrctập tin cấu hình của bạn .
Michael Mims

2
Cái này không được xem hướng dẫn.rubygems.org/command
reference/#gem

185

Lưu ý rằng --no-ri--no-rdocđã được phản đối theo các hướng dẫn mới . Cách được đề xuất là sử dụng --no-documenttrong ~/.gemrchoặc /etc/gemrc.

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

hoặc là

gem: --no-document

91

Trên Linux (và có lẽ là Mac):

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

Điều này một lót đã từng được bình luận ở đây, nhưng bằng cách nào đó đã biến mất.


11
Bạn nên sử dụng >>trong trường hợp người dùng đã có ~/.gemrc.
nickgrim

Có sự khác biệt giữa cái này echo 'gem: --no-doc --no-ri' >> ~/.gemrcvà cái bạn viết hoặc cả hai đều có tác dụng giống nhau không?
ltdev

2
@Lykos --no-doc --no-rikhông được dùng nữa (xem hướng dẫn.rubygems.org/command-reference/#gem_install để biết các tùy chọn)
Slava V

44

# / home / nbuserpl /.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-fter-installing-gems/


Cảm ơn ví dụ này, hoàn hảo để giúp tôi loại bỏ Ruby nhúng mà tôi đã sao chép và dán tại một số điểm và sau đó dẫn đến lỗi tâm lý khi cài đặt RubyGems 1.8.10 trong Ruby 1.9.2.
stevenhaddox

17
Vui lòng không đăng câu trả lời "kết quả đầu tiên trên Google". Kết quả đầu tiên trên Google hiện cho thấy câu trả lời của bạn, tự chứng minh lý do tại sao bạn không nên làm điều này. Cảm ơn, tất nhiên, cho câu trả lời của bạn.
wjl

26
Trên thực tế, "kết quả đầu tiên trên Google" hiển thị: "" kết quả đầu tiên trên Google "hiển thị:" "kết quả đầu tiên trên Google" hiển thị: "" ... LRI: Stack Overflow.
Félix Saparelli

Tôi phải thêm lời cảm ơn cho nhận xét của steve (ở trên). Tôi đã nhổ tóc vì lý do tại sao tôi không thể cài đặt RubyGems mới nhất. Hóa ra tôi cũng có một tập tin .gemrc không đúng định dạng. Tôi liên tục nhận được lỗi này: ../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse ': không thể phân tích YAML ở dòng 2 cột 10 ( Tâm lý :: SyntaxError)
wchrisjohnson

33

Trên Windows XP, đường dẫn đến tệp .gemrc là

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

và tập tin này không được tạo theo mặc định, bạn nên tự tạo nó.


20
Trong Windows 7, C: \ ProgramData \ gemrc
Viachaslau Tysianchuk

vị trí win7 hoạt động cho windows 200. Ngoài ra, hãy đảm bảo bạn có "Ẩn tiện ích mở rộng cho các loại tệp đã biết", nó sẽ không nhận gemrc.txt .... facepalm
jtzero

16

Một oneliner cho người dùng windows 7:

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



6

Như đã đề cập ở trên, đặt gem: --no-documenttrong tập tin đá quý của bạn. Tuy nhiên, gemrc trên toàn hệ thống sẽ không nhất thiết phải đi vào /etc/gemrc. Nếu bạn đang sử dụng RVM hoặc bạn đã cài đặt Ruby /usr/local/bin, nó cần phải đi đến một địa điểm khác. Bạn có thể tìm vị trí này bằng cách chạy irbvà gõ ...

require 'rubygems'
Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE

Xem bài viết gốc về điều này ở đây .


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

5

Từng bước:

Để tạo / chỉnh sửa tệp .gemrc từ thiết bị đầu cuối:

vi  ~/.gemrc

Bạn sẽ mở một trình soạn thảo gọi là vi. dán vào:

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

nhấp vào nút 'esc'.

gõ vào:

:exit

Bạn có thể kiểm tra xem mọi thứ có đúng với lệnh này không:

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

2
Để làm rõ, lệnh cuối cùng là OS X cụ thể. Nó mở ~/.gemrctập tin trong một texteditor.
Martijn Heemels

1
~ là đại diện cho thư mục nhà. (các công cụ sau trong mũ là biến môi trường) Thứ tự kiểm tra thư mục cho .gemrc: 1. Sử dụng HOME nếu được xác định. 2. Sử dụng USERPROFILE nếu được xác định. 3. Sử dụng HOMEDRIVE và HOMEPATH cùng nhau nếu chúng được xác định. 4. Sử dụng đường dẫn bạn nhận được bằng cách mở rộng Ruby ~ ~. 5. Sử dụng loại C C / / nếu bạn đang dùng máy Windows. Đó là mỗi: docs.rubygems.org/read/ch CHƯƠNG
Gary S. Weaver

Bạn không cần sudophải chỉnh sửa người dùng của riêng bạn ~/.gemrc.
jbbuckley

5

Trên Windows7, tệp .gemrc không có, bạn có thể để Ruby tạo một tệp như thế này (không dễ để làm điều này trong trình thám hiểm).

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

Bạn sẽ phải xác nhận (nó không an toàn). Bây giờ tệp được tạo trong thư mục userprofile của bạn (c: \ users \)

Bạn có thể chỉnh sửa tệp văn bản để xóa nguồn bạn đã thêm hoặc bạn có thể xóa nó bằng

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

3

Đối với người dùng Windows, Ruby không thiết lập tệp .gemrc. Vì vậy, bạn phải tạo tệp .gemrc trong thư mục chính của bạn ( echo %USERPROFILE%) và đặt dòng sau vào đó:

gem: --no-document

Như đã đề cập trong các câu trả lời trước, không sử dụng --no-ri và --no -rdoc vì nó không được dùng nữa. Xem nó cho mình:

gem help install
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.