2013-03-29 10 views
221

Uso RVM, lo Ruby Version Manager per specificare una versione Ruby e un set di gemme per ciascuno dei miei progetti Rails.Utilizzare il file di versione rvmrc o ruby ​​per impostare un gemset di progetto con RVM?

Ho un file .rvmrc per selezionare automaticamente una versione Ruby e gemset ogni volta che I cd in una directory di progetto.

Dopo l'installazione RVM 1.19.0, ricevo un messaggio

Si utilizza .rvmrc, richiede fiducia, è più lento ed è non è compatibile con altri gestori di rubino, è possibile passare alla .ruby-version utilizzando rvm rvmrc to [.]ruby-version o ignorare questo avvertimenti con rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrc continuerà ad essere il file di progetto predefinito in RVM 1 e RVM 2, di ignorare l'avviso per tutti i file eseguiti rvm rvmrc warning ignore all.rvmrcs.

Devo continuare a utilizzare il file .rvmrc o devo passare a un file .ruby-version? Quale è ottimale? Quali sono le ramificazioni?

risposta

362

Se il file .rvmrc contiene codice shell personalizzato, continuare a utilizzare .rvmrc in quanto consente di includere qualsiasi codice shell.

Se il tuo unico scopo è cambiare le versioni di Ruby, usa .ruby-version che è supportato da altri switcher di versione di Ruby come rbenv o chruby. Questo file non richiede anche il trust poiché è solo il nome di una versione di Ruby e non verrà eseguito in alcun modo.

Se si utilizza .ruby-version è possibile includere @gemset nel file ma questo non sarà compatibile con altri switcher. Per mantenere la compatibilità utilizzare il nome gemset in un file separato .ruby-gemset che viene ignorato da altri strumenti (funziona solo insieme a .ruby-version).

Ad esempio, se si dispone di una semplice .rvmrc:

rvm use [email protected] 

Può essere trasformato per .ruby-version:

1.9.3 

E .ruby-gemset:

my-app 

Assicurarsi di rimuovere il .rvmrc file come richiede la precedenza e su tutti gli altri file di configurazione del progetto:

rm .rvmrc 
+9

notare che non tutte le applicazioni supportano ancora il più recente .ruby- versione e file .ruby-gemset ma solo .rvmrc. (RubyMine in particolare). Ciò ovviamente influirà sulla scelta di passare al nuovo sistema. Lo avevo già indicato in una risposta poiché mi ci è voluto un sacco di tempo per rintracciarlo. Tuttavia la mia risposta è stata rimossa per qualche motivo .. – giorgio

+2

C'è un collegamento a qualsiasi documentazione "ufficiale" su questo? Ho iniziato a esaminare come funziona nel sito RVM, ma ho appena trovato una vaga menzione come nuovo file rvmrc ma nulla su come dovrebbe funzionare. – eirc

+2

Non è completamente documentato, ma ecco cosa abbiamo già https://rvm.io/workflow/projects/#ruby-versions – mpapis

74

modo semplice e veloce per passare da .rvmrc a .ruby versione + .ruby-GemSET

rvm rvmrc to .ruby-version 
+10

questo è ciò che il messaggio di rvm suggerisce ... – mpapis

+1

Vero, ma mette [] intorno al. per qualche motivo che non ho capito. (Forse questo è una convenzione che sono familiarità con.) Io in realtà su Google il messaggio e trovato questa risposta perché il fraseggio scomodo e il [] mi ha fatto incerto sul da eseguire in realtà. – zem

+1

@zem Il [] in 'rubino version' indicano che [il punto è facoltativo] (https://github.com/wayneeseguin/rvm/issues/1708#issuecomment-22437586) [.]; le parentesi quadre sono una convenzione comune per indicare opzionalità (in generale, non in Ruby.) Così si potrebbe utilizzare un file chiamato "ruby-versione", senza il punto, e che sarebbero stati utilizzati anche. Questo può essere utile se si desidera una maggiore visibilità del file su sistemi che nascondono "dot file" per impostazione predefinita. Sono d'accordo non è chiaro, però. –

2

Si può provare entrambi. Vai alla radice del progetto, creare un file .rvmrc (touch .rvmrc), quindi modificare rvm use [email protected]_gemset (la versione rosso rubino e il nome GemSET). Dopo salvare il file, è possibile digitare il seguente comando:

cd ../your_project (sei in your_project directory), e lo script in .rvmrc verrà eseguito.

Il RVM consiglia di utilizzare la versione di rubino. È possibile eseguire questo comando per passare da .rvmrc a .ruby versione

rvm rvmrc to .ruby-version

Ciò che fa è creare 2 file citarne .ruby versione e .ruby-GemSET e aggiungere questa linea

ruby-2.0.0-p451 in .ruby-versione

your_gemset in .ruby-GemSET

Y ou può cercare di farlo manualmente se si vuole :)

0

Installare rvm utilizzando:

\curl -sSL https://get.rvm.io | bash -s stable --rails 

installare versioni diverse rubino:

rvm install 1.8.7 
rvm install 1.9.2 

interruttore t o versione specifica di rubino. Ad esempio, 1.8.7:

rvm use 1.8.7 

Per creare un Gemse:

rvm gemset create project_gemset 

e di utilizzare un GemSET:

rvm gemset use project_gemset 
Problemi correlati