2012-03-06 10 views
6

Mi piacerebbe che gli script rubino con l'intestazione #! /usr/bin/ruby si eseguano utilizzando la versione rvm attualmente in uso di ruby. Mi imbatto nel problema in cui sto utilizzando una determinata versione, ma al momento dell'esecuzione dello script viene richiamato il ruby ​​di sistema. Installare RVM per ogni utente sul sistema non è un'opzione.Script Ruby eseguibili utilizzando l'installazione RVM utente locale corrente?

Problema:

ruby -v 
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.3.0] 

/usr/bin/ruby -v 
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0] 

come farlo quanto segue senza l'esecuzione di un sistema di un'ampia installazione di RVM?

ruby -v 
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.3.0] 

ruby -v 
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.3.0] 

risposta

27

Se lo fai which ruby, troverete che RVM di ruby non stanno alla /usr/bin/ruby. Invece utilizzare:

#!/usr/bin/env ruby 

Questo dirà a guardare in alto, che ruby da utilizzare nel contesto attuale (essenzialmente la $PATH).

È inoltre possibile eseguire lo script tramite ruby stesso: ruby myscript.rb

Problemi correlati