Jak ustawić --no-ri --no-rdoc jako domyślną instalację gem?


1041

Nie używam danych wyjściowych RI lub RDoc z klejnotów, które instaluję na moim komputerze lub na obsługiwanych przeze mnie serwerach (używam innych środków dokumentacji).

Każdy klejnot, który instaluję, domyślnie instaluje dokumentację RI i RDoc, ponieważ zapomniałem ustawić --no-ri --no-rdoc.

Czy istnieje sposób, aby ustawić te dwie flagi jako domyślne?


8
To nie jest dobry pomysł. Niedawno musiałem napisać kod w drodze, a kiedy uruchomiłem gem server, przypomniałem sobie, że miałem je w sobie $HOME/.gemrci naprawdę mnie zabiło ... Google nie zawsze tam jest.
atmosferax

7
Zależy od kontekstu. To świetny pomysł, jeśli możesz uwiązać lub robisz to na serwerze, który nie potrzebuje dokumentacji klejnotów.
Sir-Pinecone

3
z pry można użyć show-sourcejako alternatywy dla generowanych dokumentów. Wyświetli wbudowane komentarze, które i tak generalnie mają taką samą treść jak ri / rdoc.
max pleaner

Odpowiedzi:


1221

Po prostu dodajesz następujący wiersz do ~/.gemrcpliku lokalnego (znajduje się on w folderze domowym ):

gem: --no-document

lub możesz dodać ten wiersz do globalnego gemrcpliku konfiguracyjnego.

Oto jak to znaleźć (w systemie Linux):

strace gem source 2>&1 | grep gemrc

2
W każdym razie, aby ustawić go jako domyślny dla całego systemu bez edytowania / etc / skel i katalogu domowego każdego użytkownika?
Hackeron 13.01.11

41
proszę bardzo / etc / gemrc
Jirapong

3
/ etc / gemrc nie działało dla mnie, ale .gemrc zadziałało. Zastanawiam się, czy jest to specyficzne dla RVM, że nie odczytuje systemu GemRC?
wjl

5
Odpowiedź @ gdelfino jest najmniej natrętna
Ryan

4
przestarzałe - proszę zobaczyć moją odpowiedź
James Lim

492

Z dokumentacji RVM :

Po prostu dodaj ten wiersz do swojego ~/.gemrclub /etc/gemrc:

gem: --no-document

Uwaga: oryginalna odpowiedź brzmiała:

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

To nie jest już ważne; Dokumenty RVM zostały odtąd zaktualizowane, dlatego aktualna odpowiedź, która obejmuje tylko gemdyrektywę, jest poprawna.


12
Od wersji RubyGems 2.0.0preview2 możesz zamiast tego używać --no-documentlub --document=rdoctylko rdoc.
iono

3
Nie zgadzam się z edycją @ mpapis w dniu 20 czerwca 2013 r. Całkowicie zmienił tę odpowiedź i było wielu ludzi, którzy głosowali na nią, ponieważ uważali, że jest lepsza niż zaakceptowana odpowiedź. Osoba, która opublikowała tę odpowiedź, wyraźnie napisała, że ​​nie chce dodawać tych dwóch opcji do każdego polecenia klejnotu, ponieważ łamie to niektóre polecenia. Zanim @mpapis całkowicie zmieniła odpowiedź, kod w odpowiedzi brzmiał: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis, dlaczego zmieniłeś dokumentację RVM, a także zmieniłeś tę odpowiedź?
David Grayson

1
ponieważ to prawda, nie ma powodu, aby utrzymywać dwie osobne linie, śledzenie zgodności wielu projektów jest trudne - a dokumenty RVM są czasami aktualizowane, gdy stwierdzimy, że coś jest nie tak - jak w tym przypadku nie jest prawdą, że rubygemy zachowuj się źle, wszystko jest w porządku używać gem:zamiast dwóch osobnych wpisów.
mpapis

3
Służy ruby -e "require 'etc';puts Etc.sysconfdir"do określania ścieżki do gemrcpliku konfiguracyjnego.
Michael Mims


185

Należy pamiętać, że --no-rii --no-rdocbyły przestarzałe według nowych przewodników . Zalecanym sposobem jest użycie --no-documentw ~/.gemrclub /etc/gemrc.

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

lub

gem: --no-document

91

W systemie Linux (i prawdopodobnie Mac):

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

Ta jedna linijka była kiedyś w komentarzach, ale jakoś zniknęła.


11
Powinieneś użyć, >>jeśli użytkownik ma już ~/.gemrc.
nickgrim

Czy jest jakaś różnica między tym echo 'gem: --no-doc --no-ri' >> ~/.gemrca tym, który napisałeś, czy oba mają taki sam efekt?
ltdev

2
@Lykos --no-doc --no-rijest przestarzałe (patrz: guide.rubygems.org/command-reference/#gem_install, aby uzyskać opcje)
Slava V

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/


Dzięki za ten przykład, idealny, aby pomóc mi usunąć osadzony Ruby, który w pewnym momencie skopiowałem i wkleiłem, a następnie spowodował błędy psychiczne podczas instalacji RubyGems 1.8.10 pod Ruby 1.9.2.
stevenhaddox

17
Nie publikuj odpowiedzi „pierwszy wynik w Google”. Pierwszy wynik w Google pokazuje teraz twoją odpowiedź, udowadniając, dlaczego nie powinieneś tego robić. Dziękuję oczywiście za odpowiedź.
wjl

26
W rzeczywistości „pierwszy wynik w Google” pokazuje: „„ pierwszy wynik w Google ”pokazuje:„ ”pierwszy wynik w Google” pokazuje: „” ... BŁĄD: Przepełnienie stosu.
Félix Saparelli

Muszę dodać moje podziękowania za komentarz Steve'a (powyżej). Wyciągałem włosy, dlaczego nie mogłem zainstalować najnowszych RubyGemów. Okazało się, że miałem również zniekształcony plik .gemrc. Wciąż otrzymywałem ten błąd: ../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse ': nie mogłem parsować YAML w wierszu 2 kolumny 10 ( Psych :: SyntaxError)
wchrisjohnson

33

W systemie Windows XP ścieżka do pliku .gemrc to

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

i ten plik nie jest tworzony domyślnie, powinieneś go utworzyć samodzielnie.


20
W systemie Windows 7 jest to C: \ ProgramData \ gemrc
Viachaslau Tysianchuk

lokalizacja win7 działa w systemie Windows 200. Upewnij się również, że masz opcję „Ukryj rozszerzenia znanych typów plików”, ponieważ nie będzie ona pobierać gemrc.txt .... facepalm
jtzero

16

Oneliner dla użytkowników systemu Windows 7:

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



6

Jak wspomniano powyżej, umieść gem: --no-documentw swoim pliku klejnotów. Jednak systemowy gemrc nie zawsze będzie konieczny /etc/gemrc. Jeśli używasz RVM lub masz zainstalowany Ruby pod /usr/local/bin, musi on być w innej lokalizacji. Możesz znaleźć tę lokalizację, uruchamiając irbi wpisując ...

require 'rubygems'
Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE

Zobacz oryginalny post na ten temat tutaj .


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

5

Krok po kroku:

Aby utworzyć / edytować plik .gemrc z terminala:

vi  ~/.gemrc

Otworzysz edytor o nazwie vi. wklej:

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

kliknij przycisk „esc”.

Wpisz:

:exit

Za pomocą tego polecenia możesz sprawdzić, czy wszystko jest w porządku:

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

2
Aby wyjaśnić, to ostatnie polecenie jest specyficzne dla OS X. Otwiera ~/.gemrcplik w edytorze tekstów.
Martijn Heemels

1
~ reprezentuje katalog domowy. (następujące czapki to zmienne środowiskowe) Kolejność sprawdzania katalogów dla .gemrc: 1. Użyj HOME, jeśli jest zdefiniowane. 2. Użyj USERPROFILE, jeśli jest zdefiniowane. 3. Użyj HOMEDRIVE i HOMEPATH razem, jeśli są zdefiniowane. 4. Użyj ścieżki, którą uzyskasz, rozwijając Ruby „~”. 5. Użyj „C: /”, jeśli korzystasz z komputera z systemem Windows. To znaczy na: docs.rubygems.org/read/chapter/12
Gary S. Weaver

Nie musisz sudoedytować własnego użytkownika ~/.gemrc.
jbbuckley

5

W Windows7 plik .gemrc nie jest obecny, możesz pozwolić Ruby stworzyć taki jak ten (nie jest to łatwe w Eksploratorze).

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

Będziesz musiał potwierdzić (to niebezpieczne). Teraz plik jest tworzony w folderze profilu użytkownika (c: \ users \)

Możesz edytować plik tekstowy, aby usunąć dodane źródło lub możesz go usunąć za pomocą

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

3

Dla użytkowników systemu Windows Ruby nie konfiguruje pliku .gemrc. Musisz więc utworzyć plik .gemrc w swoim katalogu domowym ( echo %USERPROFILE%) i wstawić w nim następujący wiersz:

gem: --no-document

Jak już wspomniano w poprzednich odpowiedziach, nie używaj opcji --no-ri i --no-rdoc, ponieważ są one przestarzałe. Zobacz to sam:

gem help install
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.