Come aggiornare Ruby versione 2.0.0 all'ultima versione in Mac OSX Yosemite?


377

Devo aggiornare la mia versione ruby ​​dalla 2.0.0 all'ultima versione, non posso usare alcune gemme perché la mia versione non è aggiornata. Avevo usato Homebrew per installare Ruby qualche tempo fa, come posso aggiornare la mia versione di Ruby?


cosa succede quando si digita which rvmo which rbenvnella riga di comando
MageeWorld

@ChuchaC Per favore, dai un'occhiata qui e qui
vhristoskov,

1
sembra che brew install rubysia abbastanza. controlla qui
Venugopal,

Risposte:


709

Apri il tuo terminale ed esegui

curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable

Al termine, è necessario riavviare il terminale affinché il rvmcomando funzioni.

Adesso corri rvm list known

Questo mostra l'elenco delle versioni del rubino.

Ora corri rvm install ruby@latestper ottenere l'ultima versione di Ruby.

Se digiti ruby -vnel terminale, dovresti vedere ruby X.X.X.

Se ti mostra ancora ruby 2.0., corri rvm use ruby-X.X.X --default.


3
2.2.0 non è l'ultima versione di Ruby.
Jordan, in esecuzione il

1
@Jordan My bad 2.3 è la versione stabile
Abhinay Reddy Keesara il

71
Funziona su Mac OS per installare RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed

7
2.4 è l'ultima versione stabile: rvm install ruby-2.4.0
seeARMS

7
il piping curl output direttamente all'esecuzione è un incubo di sicurezza in attesa di accadere.
Arp,

214

Brew unica soluzione

Aggiornare:

Dai commenti (complimenti a Maksim Luzik), non ho provato ma sembra una soluzione più elegante:

Dopo aver installato ruby ​​tramite brew, eseguire il comando seguente per aggiornare i collegamenti all'ultima installazione di ruby: brew link --overwrite ruby

Risposta originale:

In ritardo per la festa, ma usare la birra è sufficiente. Non è necessario installare rvm e per me sono solo cose complicate.

In brew install rubyrealtà stai installando l'ultimo (attualmente v2.4.0). Tuttavia, il percorso trova prima 2.0.0. Per evitare ciò basta cambiare la precedenza ( fonte ). L'ho fatto cambiando ~/.profilee impostando:

export PATH=/usr/local/bin:$PATH

Dopo questo ho scoperto che il bundler gem stava ancora usando la versione 2.0.0, basta installarlo di nuovo: gem install bundler


2
Esattamente quello che stavo cercando, grazie. Se fossi un appassionato di rubini, allora rvm avrebbe senso, ma non lo sono, quindi è perfetto.
Max

4
funziona, necessario per eseguire "source ~ / .bash_profile" dopo l'installazione
mjpablo23

9
o dopo aver installato ruby ​​tramite brew, eseguire il comando seguente per aggiornare i collegamenti all'ultima installazione di ruby:brew link --overwrite ruby
Maksim Luzik

1
invece della overwriteversione ruby, puoi semplicemente scriverebrew unlink ruby && brew link ruby
Hamsternik

7
La soluzione di @MaksimLuzik non funziona per me in MacOS. brew link --overwrite rubyporta aWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel,

97

Raccomando rbenv * https://github.com/rbenv/rbenv

* Se questo soddisfa i tuoi criteri: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv fa ...

  • Fornire supporto per specificare le versioni di Ruby specifiche dell'applicazione .
  • Ti consente di modificare la versione globale di Ruby in base all'utente.
  • Consentire di sostituire la versione di Ruby con una variabile di ambiente.

Contrariamente a RVM, rbenv non ...

  • Devi essere caricato nella tua shell. Invece, l'approccio shim di rbenv funziona aggiungendo una directory alla tua $PATH.
  • Sostituisci comandi shell come cdo richiedono hack rapidi. È pericoloso e soggetto a errori.
  • Avere un file di configurazione. Non c'è nulla da configurare tranne la versione di Ruby che si desidera utilizzare.
  • Installa Ruby. Puoi compilare e installare Ruby da solo o utilizzare ruby-build per automatizzare il processo.
  • Gestisci gemme. Bundler è un modo migliore per gestire le dipendenze delle applicazioni. Se hai progetti che non usano ancora Bundler puoi installare il plugin rbenv-gemset .
  • Richiedi modifiche alle librerie di Ruby per compatibilità. La semplicità di mezzi rbenv finché è nel vostro $PATH, niente altro ha bisogno di sapere su di esso.

INSTALLAZIONE

Installa Homebrew http://brew.sh

Poi:

$ brew update
 $ brew installa rbenv
$ brew installa rbenv ruby-build

# Aggiungi rbenv a bash in modo che si carichi ogni volta che apri un terminale
echo 'if what rbenv> / dev / null; quindi valutare "$ (rbenv init -)"; fi '>> ~ / .bash_profile
fonte ~ / .bash_profile

AGGIORNAMENTO
C'è un ulteriore passaggio dopobrew install rbenvEseguirbenv inite aggiungi una riga.bash_profilecome indicato. Successivamente riaprire la finestra del terminale […] SGI il 30 settembre alle 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Versioni disponibili:
 1.8.5-P113
 1.8.5-p114
 [...]
 2.3.1
 2.4.0-dev
 JRuby-1.5.6
 [...]
$ rbenv install 2.3.1
[...]

Imposta la versione globale:

$ rbenv global 2.3.1
$ ruby ​​-v
ruby 2.3.1p112 (26-04-2016 revisione 54768) [x86_64-darwin15]

Imposta la versione locale del tuo repository aggiungendo .ruby-versionalla directory principale del tuo repository:

$ cd ~ / whatevs / projects / new_repo
$ echo "2.3.1"> .ruby-version

Per MacOS visitare questo link


3
@ChuchaC No prob. Ma prima di farlo, questo è dal readme di rbenv: "Nota di compatibilità: rbenv non è compatibile con RVM. Assicurati di disinstallare completamente RVM e rimuovere qualsiasi riferimento ad esso dai file di inizializzazione della shell prima di installare rbenv." - github.com/rbenv/rbenv#installation
SoAwesomeMan,

17
non ha aiutato. Sempre ottenendo la versione 2.0.0 standard per ruby -vafterrbenv global ...
tuxSlayer

8
C'è un ulteriore passaggio dopo l' brew install rbenvesecuzione rbenv inite aggiungi una riga a .bash_profile come indicato. Dopo di che riaprire la finestra del terminale, fare rbenv install 2.3.1, rbenv global 2.3.1 e rbenv farà il suo lavoro
SGI

6
Probabilmente in ritardo ma per riferimenti futuri per le persone che hanno riscontrato lo stesso problema di @tuxSlayer, rbenv rehashdopo aver rbenv globallavorato per me
Sean,

2
Successivamente rbenv init, ruby -vgenera la versione 2.1.2 corretta, ma le esecuzioni del bundle riscontrano errori come questo paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Finalmente riesci a farlo funzionare con una serie di rbenv rehash. Grazie @Sean
James

51

Terminale aperto:

sudo gem update --system 

Funziona!


3
Questo sembra davvero funzionare ed è decisamente più semplice rispetto alle altre risposte. Ma quando installano alcune gemme (ascolta per esempio) si lamentano che la versione è inferiore al necessario.
William Isted,

8
Questa è gemma non rubino
William GP,

Prepara l'unica soluzione qui
Sergio Basurco,

2
Sono stato ingannato anche da questa risposta. "Funziona" in quanto non vengono generati errori quando lo si esegue dalla console. Tuttavia, non aggiorna Ruby. Aggiorna Ruby Gems. Segui una delle altre risposte per aggiornare Ruby (usando OS X Sierra).
Informazioni

41

Modo rapido per aggiornare ruby ​​a v2.4 +

brew upgrade ruby

o

sudo gem update --system 

4
Questo sembra fare un sacco di cose, ma l'aggiornamento di ruby ​​non è uno di questi. Termina con: /usr/local/Homebrew/Library/Homebrew/brew.rb:12:in '<main>': Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError)
nkoren,

1
Questo è il modo corretto e migliore per aggiornare la versione ruby ​​usando brew.
user1101733

Non funziona per me. ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem
Sébastien Loisel,

@ SébastienLoisel puoi per favore fornire alcuni dettagli sul tuo sistema operativo, comando ecc.
fatihyildizhan

1
Apparentemente @fatihyildizhan ruby ​​/ gems / etc si trova in uno stato semi-vibrante su Mavericks. Ho risolto i miei problemi aggiornando a Catalina. Non ricordo tutti gli errori che ho avuto, ma c'erano moltitudini. Non ricordo se stavo cercando di aggiornare cocoapods o gemme o cosa, ma era essenzialmente senza speranza.
Sébastien Loisel,

31

Puoi specificare l'ultima versione di ruby ​​guardando https://www.ruby-lang.org/en/downloads/

  1. Scarica l'ultima versione:

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

  2. Installalo:

    rvm install 2.2

  3. Usalo come predefinito:

    rvm use 2.2 --default

O esegui l'ultimo comando da ruby:

rvm install ruby --latest
rvm use 2.2 --default

Grazie, ha funzionato per me. La soluzione rbenvnon funzionava
tuxSlayer

Questo ha funzionato anche per me !! La soluzione rbenvNON ha funzionato
ruoho ruotsi il

5

Se hai mac os e Brewhai installato puoi provare a seguire il comando,

brew upgrade ruby

2

Nel caso in cui qualcuno ottenga lo stesso errore, ho fatto: "Installazione dei requisiti non riuscita con stato: 1." ecco cosa fare:

Installa Homebrew (per qualche motivo potrebbe non funzionare automaticamente) con questo comando:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quindi procedere con l'installazione di rvm usando

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

Esci e riapri Terminal e quindi:

rvm install 2.2
rvm use 2.2 --default

2

brew install rbenv ruby-build

Aggiungi rbenv a bash in modo che si carichi ogni volta che apri un terminale

echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile

source ~/.bash_profile

Installa Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Link alla pagina di origine

0

Nel terminal: rvm gemset use global


5
Sebbene questo frammento di codice possa essere la soluzione, includere una spiegazione aiuta davvero a migliorare la qualità del tuo post. Ricorda che stai rispondendo alla domanda per i lettori in futuro e che queste persone potrebbero non conoscere i motivi del tuo suggerimento sul codice.
Adam,

-2

Il modo più semplice è sicuramente inserire il seguente comando nel terminale:

sudo gem update --system

È possibile aggiungere il flag --no-documentse non si desidera scaricare la documentazione. Ecco un esempio di output dopo aver eseguito il comando:

sudo gem update --system
Password:
Updating rubygems-update
Fetching: rubygems-update-2.6.8.gem (100%)
Successfully installed rubygems-update-2.6.8
Parsing documentation for rubygems-update-2.6.8
Installing ri documentation for rubygems-update-2.6.8
Installing darkfish documentation for rubygems-update-2.6.8
Installing RubyGems 2.6.8
RubyGems 2.6.8 installed
Parsing documentation for rubygems-2.6.8
Installing ri documentation for rubygems-2.6.8

------------------------------------------------------------------------------

RubyGems installed the following executables:
    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem

Ruby Interactive (ri) documentation was installed. ri is kind of like man 
pages for ruby libraries. You may access it like this:
  ri Classname
  ri Classname.class_method
  ri Classname#instance_method

1
Non è la stessa della risposta sopra ? Sono curioso di sapere perché il numero di voti negativi qui contro i voti positivi lì? È a causa della duplice risposta, o perché le persone non si sono rese conto abbastanza presto, che la soluzione precedente era anche solo per i rubygem, non per Ruby?
Informazioni
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.