Utilizzare rvmrc o il file versione ruby ​​per impostare un gemset di progetto con RVM?


230

Uso RVM, Ruby Version Manager per specificare una versione di Ruby e una serie di gemme per ciascuno dei miei progetti Rails.

Ho un .rvmrcfile per selezionare automaticamente una versione di Ruby e gemset ogni volta che mi trovo cdin una directory di progetto.

Dopo aver installato RVM 1.19.0, ricevo un messaggio

Stai utilizzando .rvmrc, richiede fiducia, è più lento e non è compatibile con altri gestori di ruby, puoi passare a .ruby-versionutilizzare rvm rvmrc to [.]ruby-versiono ignorare questi avvisi con rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrccontinuerà ad essere il file di progetto predefinito in RVM 1 e RVM 2, per ignorare il avviso per tutti i file eseguiti rvm rvmrc warning ignore all.rvmrcs.

Devo continuare a utilizzare il mio .rvmrcfile o devo passare a un .ruby-versionfile? Qual è ottimale? Quali sono le conseguenze?

Risposte:


372

Se il tuo .rvmrcfile contiene un codice shell personalizzato, continua a utilizzarlo .rvmrcpoiché ti consente di includere qualsiasi codice shell.

Se il tuo unico obiettivo è cambiare la versione di Ruby, usa quella .ruby-versionche è supportata da altri switcher della versione di Ruby come rbenv o chruby . Inoltre, questo file non richiede fiducia poiché è solo il nome di una versione di Ruby e non verrà eseguito in alcun modo.

Se lo usi .ruby-versionpuoi includere @gemsetnel file ma questo non sarà compatibile con altri switcher. Per mantenere la compatibilità utilizzare il nome gemset in un file separato .ruby-gemsetche viene ignorato da altri strumenti (funziona solo insieme a .ruby-version) .

Ad esempio, se hai un semplice .rvmrc:

rvm use 1.9.3@my-app

Può essere trasformato in .ruby-version:

1.9.3

E .ruby-gemset:

my-app

Assicurati di rimuovere il .rvmrcfile poiché ha la precedenza su qualsiasi altro file di configurazione del progetto:

rm .rvmrc

9
Nota che non tutte le applicazioni supportano ancora i file .ruby-version e .ruby-gemset più recenti, ma solo .rvmrc. (RubyMine in particolare). Questo ovviamente influenzerebbe la tua scelta se passare al nuovo sistema. L'avevo già sottolineato in una risposta poiché mi ci è voluto molto tempo per rintracciarlo. Tuttavia la mia risposta è stata rimossa per qualche motivo ..
giorgio,

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

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

4
Basta posizionare 1.9.3-p194 nella versione .ruby non funziona per me. Fai riferimento al documento sopra, rvm --create --ruby-version use 1.9.3-p194fai il lavoro e il contenuto è in realtàruby-1.9.3-p194
Jinzhao Huo,

2
Le versioni attuali di RubyMine supportano lo stile .ruby-version. Può confermare con 6.3.2
BeepDog,

76

Modo semplice e veloce per passare da .rvmrc a .ruby-version + .ruby-gemset

rvm rvmrc to .ruby-version

1
Vero, ma mette [] attorno al. per qualche motivo che non ho capito. (forse questa è una convenzione con cui non ho familiarità.) In realtà ho cercato su Google il messaggio e ho trovato questa risposta perché il fraseggio imbarazzante e il [] mi hanno fatto insicuro su cosa effettivamente eseguire.
zem,

2
@zem Il [] in [.]ruby-versionindica che il punto è opzionale ; le parentesi quadre sono una convenzione comune per indicare opzionalità (in generale, non in ruby.) Quindi potresti usare un file chiamato "ruby-version", senza il punto, e che sarebbe anche usato. Questo può essere utile se si desidera una maggiore visibilità del file su sistemi che nascondono "file dot" per impostazione predefinita. Sono d'accordo, però, non è così chiaro.
Matt Gibson,

DiceCould not load .rvmrc
Abdullah,

4

Se si desidera creare il file .ruby-versione .ruby-gemsetin breve, è possibile utilizzare i comandi in questo modo:

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

Puoi provare entrambi. Vai alla radice del tuo progetto, crea un file .rvmrc ( touch .rvmrc), quindi modifica rvm use 2.0.0-p451@your_gemset(la tua versione ruby ​​e il nome gemset). Dopo aver salvato questo file, è possibile digitare questo comando:

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

L'RVM consiglia di utilizzare la versione ruby. È possibile eseguire questo comando per passare da .rvmrc a .ruby-version

rvm rvmrc to .ruby-version

Quello che fa è creare 2 file nome .ruby-version e .ruby-gemset e aggiungere questa riga

ruby-2.0.0-p451 in versione .ruby

your_gemset in .ruby-gemset

Puoi provare a farlo manualmente se vuoi :)


0

Installa rvm usando:

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

Installa diverse versioni di rubini:

rvm install 1.8.7
rvm install 1.9.2

Passa alla versione rubino specifica. Ad esempio, 1.8.7:

rvm use 1.8.7

Per creare un gemse:

rvm gemset create project_gemset

E per usare un gemset:

rvm gemset use project_gemset
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.