Installazione della versione più recente di Ruby on Snow Leopard

4

Ho scaricato e compilato l'ultima versione di Ruby 1.9.2 che è stata installata in /usr/local/bin/ruby , tuttavia il sistema riconosce ufficialmente /usr/bin/ruby che è solo 1.8.7 che è stato installato sulla macchina. Come posso inserire il nuovo rubino?

In questo caso ho bisogno di sostituire la versione ruby ed essere in grado di usare la versione aggiornata per lo sviluppo del lavoro e dello sviluppo delle linee di comando.

    
posta Jason Yost 10.05.2011 - 03:21
fonte

5 risposte

9

Dovresti usare RVM , il Manager versione di Ruby. Permette molteplici installazioni side-by-side di Ruby senza influenzare l'installazione di Ruby del sistema, che, come sottolineato da un altro commentatore, può potenzialmente essere problematico (o per lo meno faticoso da mantenere).

Ti consente di installare rapidamente e facilmente l'ultimo patchlevel di Ruby, versioni precedenti di Ruby o anche implementazioni alternative come JRuby, MacRuby o Rubinius.

Per installare:

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Una volta installato, l'impostazione di 1.9.2 come impostazione predefinita è semplice quanto la digitazione:

rvm default 1.9.2

E se hai voglia di tornare temporaneamente a 1.8.7:

rvm use 1.8.7
    
risposta data 10.05.2011 - 16:04
fonte
2

Che cosa intendi con "inserire il nuovo Ruby"?

Se stai provando ad eseguirlo dalla riga di comando usando solo il comando ruby , il sistema cercherà ciascuno dei percorsi specificati in /etc/paths in ordine finché non trova una corrispondenza. In Snow Leopard, il file /etc/paths di default assomiglia a questo:

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

Quindi quando inserisci ruby alla riga di comando, il sistema cerca prima /usr/bin/ruby , lo trova e non controlla il resto dei percorsi (quindi non arriva mai a /usr/local/bin/ruby ). Per confermare questo, puoi inserire which ruby nella riga di comando, e il sistema stamperà il percorso dell'eseguibile che userebbe per quel comando.

Se vuoi eseguire la tua nuova versione di Ruby dalla riga di comando, inserisci semplicemente /usr/local/bin/ruby anziché ruby .

Se stai utilizzando un altro programma che utilizza Ruby indirettamente, probabilmente c'è un'opzione da qualche parte per specificare il percorso a ruby .

MODIFICA: come ultima risorsa , puoi sovrascrivere la versione di sistema integrata di Ruby con la tua versione più recente. Utilizza i seguenti comandi e inserisci la password dell'amministratore quando richiesto:

cp /usr/bin/ruby ~/Desktop/ruby_OLD
sudo cp /usr/local/bin/ruby /usr/bin/ruby

Se qualcosa si rompe, rimettilo con questo comando:

sudo mv ~/Desktop/ruby_OLD /usr/bin/ruby

Come altri hanno già detto, però, usare uno strumento come RVM per gestire Ruby sarebbe un'idea migliore dell'aggiornamento dell'installazione integrata.

    
risposta data 10.05.2011 - 03:46
fonte
2

Se vuoi davvero sostituire il /usr/bin/ruby esistente (che è semplicemente un collegamento simbolico a /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby ), basta sovrascrivere il file esistente con quello che hai compilato facendo attenzione a rispettare i permessi dei file.

Le ragioni per non farlo sono molte, ma è così semplice data un'interpretazione letterale della tua domanda.

Molte persone cambiano il loro percorso per includere il rubino più recente prima del sistema, dal momento che è più semplice e meno probabile che rompa altre cose che dipendono dalla versione installata di ruby e dylib, gemme, rdoc associati e simili rimanenti.

Uno dei vantaggi di homebrew e fink e RVM e MacPorts è che aiutano ad automatizzare la stadiazione in una posizione alternativa e supportano la modifica del percorso.

Puoi fare lo stesso con il ruby che hai in /usr/local/bin manipolando la variabile path e usando which -a ruby per ricontrollare il tuo lavoro in seguito.

    
risposta data 10.05.2011 - 17:19
fonte
2

Il modo in cui trovare un programma autoinstallato prima di un oma fornito da Apple è quello di aggiungere la directory del nuovo programma (ad es. / usr / local / bin) al fromt della variabile d'ambiente PATH.

Se stai usando ruby dalla shell edit ~ / .profile o se da una GUI ~ / .MacOSX / environment.plist

    
risposta data 10.05.2011 - 12:57
fonte
0

Potresti dare un'occhiata a Homebrew , che semplifica l'installazione dell'ultimo Ruby - brew install ruby è tutto ciò di cui hai bisogno - e molti altri pacchetti senza interferire con qualsiasi cosa già sul tuo sistema, in una posizione che è (quasi certamente) già presente in $PATH .

    
risposta data 10.05.2011 - 14:56
fonte

Leggi altre domande sui tag