Come aggiornare Ruby a 1.9.x su Mac?


107

Ho creato un nuovo account utente sul mio Mac e sto cercando di aggiornare alla versione corrente di ruby ​​su di esso (1.9.2) dall'impostazione predefinita di 1.8.7 leopardo delle nevi. Qualcuno può indicarmi un tutorial o spiegare il metodo migliore per aggiornare Ruby sul mio Mac da 1.8 a 1.9.2? Grazie

Risposte:


66

Farò un forte suggerimento per rvm .

È un ottimo modo per gestire più rubini e set di gemme senza entrare in collisione con la versione di sistema.


Aggiungo che ora (4/2/2013), uso molto rbenv , perché le mie esigenze sono semplici. RVM è fantastico, ma ha molte funzionalità di cui non ho mai bisogno, quindi ce l'ho su alcune macchine e rbenv sul mio desktop e laptop. Vale la pena controllare entrambi e vedere quale funziona meglio per le tue esigenze.


Concordato. E anche se più versioni non sono un problema (ah!), Rvm è ottimo per scoprire quali librerie native mancano. Praticamente indispensabile.
Isaac Rabinovitch

198

Come suggerisce The Tin Man (sopra) RVM ( Ruby Version Manager ) è lo standard per l'aggiornamento dell'installazione di Ruby su OSX: https://rvm.io

Per iniziare, apri una finestra di terminale e immetti il ​​seguente comando:

\curl -L https://get.rvm.io | bash -s stable --ruby

(dovrai fidarti del team di sviluppo RVM che il comando non è dannoso - se sei un pinguino paranoico come me, puoi sempre andare a leggere la fonte : https://github.com/wayneeseguin/rvm ) Quando è completo è necessario riavviare il terminale per far funzionare il rvmcomando.

rvm list known

(mostra le ultime versioni disponibili di Ruby)

rvm install ruby-2.3.1

Per una versione specifica, seguito da

rvm use ruby-2.3.1

o se vuoi solo l'ultima versione (attuale):

rvm install current && rvm use current

(installa l'attuale versione stabile - al momento della scrittura di ruby-2.3.1 - aggiorna questo wiki quando vengono rilasciate nuove versioni)

Nota sulla compilazione di Ruby : nel mio caso ho anche dovuto installare Homebrew http://mxcl.github.com/homebrew/ per ottenere le gemme di cui avevo bisogno ( RSpec ) che a sua volta ti costringe a installare Xcode (se non lo hai già fatto ) https://itunes.apple.com/us/app/xcode/id497799835 E / O installa il pacchetto GCC da: https://github.com/kennethreitz/osx-gcc-installer per evitare errori di esecuzione " make ".

Modifica: a partire da Mavericks puoi scegliere di installare solo gli strumenti della riga di comando Xcode invece dell'intero pacchetto Xcode, che viene fornito con gcc e molte altre cose che potresti aver bisogno per la creazione di pacchetti. Può essere installato eseguendo xcode-select --installe seguendo il prompt sullo schermo.

Nota sugli errori : se ricevi l'errore " RVM non è una funzione " mentre provi questo comando, visita: Come cambio la mia versione di Ruby usando RVM? per la soluzione.


Impostare tutto questo su Mountain Lion richiede molta pazienza. Se si verifica un errore "Errore durante l'esecuzione di 'env GEM_PATH = / Users / ..." non sono i tuoi percorsi e vedrai nel registro che è che openssl (che è probabilmente installato) è rotto in RVM e forniscono un pagina su come lavorarci rvm.io/packages/openssl
Dylan Valade

4
Odio davvero il casino che è Ruby. È un macello. Tuttavia, questa risposta mi ha portato sulla strada giusta e molte grazie davvero per questo!
Ian Lewis

1
Vagando tra i post che mi portano ad altri problemi, ho trovato questo molto utile in quanto spiega come usare RVM, non solo come usarlo.
Hector Ordonez

19

Con brew questo è un one-liner:

(supponendo che tu abbia toccato homebrew / versioni, cosa che può essere eseguita eseguendo brew tap homebrew/versions)

brew install ruby193

Ha funzionato immediatamente per me su OS X 10.8.4. O se vuoi 2.0, bastabrew install ruby

Più in generale, brew search rubymostra i diversi repository disponibili e, se vuoi essere davvero specifico, puoi usare brew versions rubye controllare una versione specifica.


1
Ottimo one-liner per l'installazione di una versione specifica di ruby! il passaggio tra versioni rubino con birra non è così facile ... stackoverflow.com/questions/8730676
nelsonic

4

So che è un post più vecchio, ma voglio aggiungere alcune informazioni extra a riguardo. In primo luogo, penso che funzioni alla rvmgrande MA non stava aggiornando ruby ​​dal mio sistema (MAC OS Yosemite).

Cosa rvmstavo facendo: installare in un'altra posizione e impostare il percorso lì per la mia variabile d'ambiente ... Ed ero un po 'annoiato, perché ora avevo due ruby ​​sul mio sistema.

Quindi, per risolverlo, ho disinstallato rvm, quindi ho utilizzato il gestore di pacchetti Homebrew disponibile qui e ho installato il comando del terminale ruby ​​throw facendo brew install ruby.

E poi, tutto funzionava perfettamente! Il rubino del mio sistema è stato aggiornato! Spero che possa aiutare i prossimi avventurieri!


1
Stavo lottando per decidere se usare rvmo brew. questo aiuta. grazie
unifreak

Anche la birra non fa la stessa cosa?
anon

3

Non sono d'accordo con The Tin Man qui. Considero rbenv preferibile a RVM. rbenvnon interferisce drasticamente con la tua shell come fa RVM e ti consente di aggiungere installazioni Ruby separate in cartelle ordinarie che puoi esaminare direttamente. Ti permette di compilare Ruby da solo. Buona descrizione delle differenze qui: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

Fornisco le istruzioni per compilare Ruby 1.9 per rbenv qui . Ulteriori informazioni più dettagliate qui . Ho usato questa tecnica con facile successo su Snow Leopard, Lion e Mountain Lion.


1
All'epoca in cui questa domanda è stata inizialmente posta, rbenv non era un'opzione. I tempi cambiano, così come il codice. RVM è ancora una buona scelta, ma è un peso massimo rispetto a rbenv. Li uso entrambi su macchine diverse, perché sono entrambi utili in modi diversi.
Tin Man il

2

L'articolo di Dan Benjamin su Hivelogic Installare Ruby, RubyGems e Rails su Snow Leopard è il posto consigliato dove andare anche se l'articolo è per 1.8, quindi ecco un'installazione specifica per Ruby 1.9 su Snow Leopard . Fai attenzione alla cosa a 64 bit ... o vai tutti a 64 bit `` grassi '' (come è, ad esempio, Apache su OS X, che può causare problemi con le librerie a 32 bit) o ​​controlla eventuali gemme che potresti da utilizzare per assicurarsi che vadano bene per 64 bit.


2

Questo comando funziona davvero

\curl -L https://get.rvm.io | bash -s stable --ruby


0

Come accennato in precedenza, la versione del bundler potrebbe essere troppo alta per la tua versione di rails.

Ho riscontrato lo stesso problema utilizzando Rails 3.0.1 che richiede Bundler v1.0.0 - v1.0.22

Controlla la tua versione del bundler usando: gem list bundler

Se la tua versione del bundler non rientra nell'intervallo appropriato, ho trovato che questa soluzione funziona: rvm @global do gem uninstall bundler

Nota: rvm è richiesto per questa soluzione ... un altro caso per cui dovresti usare rvm in primo luogo.


0

Ci sono molti altri gestori di versione da considerare, vedi per alcuni esempi e uno che non è elencato lì che proverò presto è ch-ruby . Ho provato rbenv ma ho avuto troppi problemi con esso. RVM è il mio pilastro, anche se a volte ha uno strano problema (da qui il mio desiderio di provare ch-ruby quando ne ho la possibilità). Non toccherei il sistema Ruby, poiché altre cose potrebbero fare affidamento su di esso.

Dovrei aggiungere che ho anche compilato il mio Ruby diverse volte, e usare l'articolo di Hivelogic (come ha suggerito Dave Everitt) è una buona idea se prendi quella strada.

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.