Come rendere --no-ri --no-rdoc il predefinito per l'installazione gem?


1042

Non utilizzo l'output RI o RDoc dalle gemme che installo nella mia macchina o nei server che gestisco (utilizzo altri mezzi di documentazione).

Ogni gemma che installo installa la documentazione RI e RDoc per impostazione predefinita, perché ho dimenticato di impostare --no-ri --no-rdoc.

C'è un modo per rendere quelle due bandiere predefinite?


8
Non è una buona idea però. Di recente avevo bisogno di scrivere codice sulla strada e quando ho lanciato gem servermi sono ricordato che avevo questi nel mio $HOME/.gemrce mi hanno davvero ucciso ... Google non è sempre lì.
atmosx,

7
Dipende dal contesto. È un'ottima idea se riesci a collegare o lo stai facendo su un server che non ha bisogno di documentazione gemma.
sir-pinecone,

3
con la leva si può usare show-sourcecome alternativa ai documenti generati. Mostrerà commenti in linea, che sono comunque generalmente gli stessi contenuti di ri / rdoc.
max Pleaner,

Risposte:


1221

Devi solo aggiungere la seguente riga al tuo ~/.gemrcfile locale (è nella tua cartella home ):

gem: --no-document

oppure puoi aggiungere questa linea al gemrcfile di configurazione globale .

Ecco come trovarlo (in Linux):

strace gem source 2>&1 | grep gemrc

2
In ogni caso per renderlo un valore predefinito di sistema senza modificare / etc / skel e la home directory di ogni utente?
Hackeron

41
qui vai / etc / gemrc
Jirapong

3
/ etc / gemrc non ha funzionato per me, ma .gemrc ha funzionato. Mi chiedo se è specifico per rvm che non legge il sistema gemrc?
wjl

5
La risposta di @ gdelfino è la meno invadente
Ryan,

4
deprecato - vedi la mia risposta
James Lim,

492

Dalla documentazione di RVM :

Aggiungi questa riga al tuo ~/.gemrco /etc/gemrc:

gem: --no-document

Nota: la risposta originale era:

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

Questo non è più valido; i documenti RVM sono stati aggiornati da allora, quindi l'attuale risposta per includere solo la gemdirettiva è quella corretta.


12
Da RubyGems versione 2.0.0preview2 , puoi invece usare --no-documento --document=rdocsolo per rdoc.
iono,

3
Non sono d'accordo con la modifica di @ mpapis del 20 giugno 2013. Ha completamente cambiato questa risposta e ci sono state molte persone che hanno votato a favore perché pensavano che fosse migliore della risposta accettata. La persona che ha pubblicato questa risposta ha scritto esplicitamente che non desidera aggiungere queste due opzioni a ogni comando gem perché interrompe alcuni comandi. Prima che @mpapis cambiasse totalmente la risposta, il codice nella risposta era: install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri @mpapis, perché hai cambiato la documentazione RVM e anche cambiato questa risposta?
David Grayson,

1
perché è vero, non c'è motivo di mantenere due linee separate, tenere traccia della compatibilità multi-progetto è complicato - e i documenti RVM a volte vengono aggiornati quando troviamo qualcosa di spento - come in questo caso, non è vero che i rubygem sarebbero comportarsi male, va bene usare al gem:posto di due voci separate.
mpapis,

3
Utilizzare ruby -e "require 'etc';puts Etc.sysconfdir"per determinare il percorso del gemrcfile di configurazione.
Michael Mims,


185

Si noti che --no-rie --no-rdocsono stati deprecati secondo le nuove guide . Il modo raccomandato è usare --no-documentin ~/.gemrco /etc/gemrc.

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

o

gem: --no-document

92

Su Linux (e probabilmente su Mac):

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

Questo one-liner era nei commenti qui, ma in qualche modo è scomparso.


11
Si dovrebbe usare >>nel caso in cui l'utente abbia già un ~/.gemrc.
nickgrim

C'è una differenza tra questo echo 'gem: --no-doc --no-ri' >> ~/.gemrce quello che hai scritto o entrambi hanno lo stesso effetto?
ltd

2
@Lykos --no-doc --no-riè deprecato (vedi guide.rubygems.org/command-reference/#gem_install per le opzioni)
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/


Grazie per questo esempio, perfetto per aiutarmi a rimuovere il Ruby incorporato che ho copiato e incollato ad un certo punto e quindi ha provocato errori psichici durante l'installazione di RubyGems 1.8.10 sotto Ruby 1.9.2.
Stevenhaddox,

17
Non pubblicare le risposte "primo risultato su Google". Il primo risultato su Google ora mostra la tua risposta, dimostrando da solo perché non dovresti farlo. Grazie, ovviamente, per la tua risposta.
wjl

26
In realtà, "primo risultato su Google" mostra: "" primo risultato su Google "mostra:" "primo risultato su Google" mostra: "" ... ERRORE: Stack Overflow.
Félix Saparelli,

Devo aggiungere i miei ringraziamenti per il commento di Steve (sopra). Mi stavo togliendo i capelli perché non riuscivo a installare gli ultimi RubyGems. Ho scoperto che avevo anche un file .gemrc non valido. Ho continuato a ricevere questo errore: ../.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse ': impossibile analizzare YAML alla riga 2 colonna 10 ( Psych :: SyntaxError)
wchrisjohnson

33

Su Windows XP il percorso del file .gemrc è

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

e questo file non viene creato per impostazione predefinita, è necessario crearlo da soli.


20
Sotto Windows 7 è C: \ ProgramData \ gemrc
Viachaslau Tysianchuk il

la posizione win7 funziona per Windows 200. Assicurati anche di avere "Nascondi le estensioni per i tipi di file conosciuti" disattivato. Non prenderai gemrc.txt .... facepalm
jtzero

16

Un oneliner per gli utenti di Windows 7:

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



6

Come accennato in precedenza, inserisci il gem: --no-documenttuo file gem. Tuttavia, il gemrc a livello di sistema non sempre entrerà necessariamente /etc/gemrc. Se stai usando RVM, o hai installato Ruby /usr/local/bin, deve andare in una posizione diversa. Puoi trovare questa posizione eseguendo irbe digitando ...

require 'rubygems'
Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE

Vedi il post originale su questo qui .


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

5

Step by step:

Per creare / modificare il file .gemrc dal terminale:

vi  ~/.gemrc

Si aprirà un editor chiamato vi. incollare in:

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

fare clic sul pulsante "esc".

digitare:

:exit

Puoi controllare se tutto è corretto con questo comando:

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

2
Per chiarire, l'ultimo comando è specifico di OS X. Apre il ~/.gemrcfile in un texteditor.
Martijn Heemels,

1
~ è la rappresentazione per la home directory. (i seguenti elementi in maiuscolo sono variabili di ambiente) Ordine di controllo delle directory per .gemrc: 1. Utilizzare HOME se è definito. 2. Utilizzare USERPROFILE se è definito. 3. Utilizzare HOMEDRIVE e HOMEPATH insieme se sono definiti. 4. Usa il percorso che ottieni facendo espandere Ruby "~". 5. Utilizzare "C: /" se ci si trova su un computer Windows. Questo è per: docs.rubygems.org/read/chapter/12
Gary S. Weaver

Non dovresti aver bisogno sudodi modificare il tuo utente ~/.gemrc.
Jbbuckley,

5

Su Windows 7 il file .gemrc non è presente, puoi permettere a Ruby di crearne uno come questo (non è facile farlo in Explorer).

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

Dovrai confermare (non è sicuro). Ora il file viene creato nella cartella del profilo utente (c: \ utenti \)

Puoi modificare il file di testo per rimuovere la fonte che hai aggiunto o puoi rimuoverlo con

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

3

Per gli utenti Windows, Ruby non configura il file .gemrc. Quindi devi creare il file .gemrc nella tua home directory ( echo %USERPROFILE%) e inserirci la seguente riga:

gem: --no-document

Come già accennato nelle risposte precedenti, non usare --no-ri e --no-rdoc perché è deprecato. Vedi tu stesso:

gem help install
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.