Come impostare il valore predefinito su ruby ​​2.1.2?


12

Ho ruby ​​1.9.3 e 2.1.2. Quando apro il terminale di default usa ruby ​​1.9.3 ma voglio usare ruby ​​2.1.2.

Come posso impostare ruby ​​2.1.2 come predefinito?

Risposte:


6

È necessario installare RVM per gestire le versioni di Ruby. Per installare RVM fare

sudo apt-get install zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2 libxml2-dev libxslt-dev gawk libgdbm-dev libncurses5-dev automake libtool bison libffi-dev nodejs
\curl -sSL https://get.rvm.io | bash -s stable

Se ciò si interrompe per qualche motivo, segui le istruzioni qui: /programming//a/9056395/2376036

Quindi fare la 2.1.2 predefinita

rvm --default use 2.1.2

Ciao, grazie mille per il tuo gentile aiuto, Sì, ho seguito le tue istruzioni ma nel terminale durante l'installazione di rvm si dice "pacchetto rvm rotto, per favore controlla stackoverflow.com/a/9056395/497756 ", quindi ho seguito il percorso e ho capito per il successo, grazie per il vostro aiuto
Rasool,

Sono contento di poterti aiutare, per favore segna la mia risposta come accettata in modo che le persone in futuro possano sapere cosa ha funzionato per te. Aggiungerò il contesto aggiuntivo dal tuo commento nella mia risposta.
Termhn,

19

/usr/bin/rubydi solito è un collegamento a /etc/alternatives/ruby, che a sua volta collega all'eseguibile della versione ruby ​​predefinita (ad esempio /usr/bin/ruby1.9). È possibile modificare la versione predefinita configurata con:

sudo update-alternatives --config ruby

Se la versione desiderata non si è configurata come alternativa per ruby(ad esempio se non è impostata dal gestore pacchetti), puoi farlo tu stesso con

sudo update-alternatives --install /usr/bin/ruby ruby /path/to/ruby2.1 <PRIORITY>

dove <PRIORITY>è un numero intero positivo. Quindi è possibile eseguire il primo passaggio.

Per i dettagli, consultare il manuale diupdate-alternatives(8) .


5

Su Ubuntu 14.04 è possibile installare il ruby2.0pacchetto. Attualmente il pacchetto offre la versione 2.0.0p384 (alla fine il pacchetto potrebbe offrire Ruby 2.1 o versioni successive). Questo è il modo semplice come installare i binari ruby:

sudo apt install ruby2.0

Quindi avrai binari ruby2.0e gem2.0. Per sostituire ruby ​​1.9 predefinito con 2.0 è possibile effettuare le seguenti operazioni ( NOTA: è possibile interrompere le applicazioni che richiedono rigorosamente Ruby <= 1.9).

sudo update-alternatives --set /usr/bin/ruby ruby /usr/bin/ruby2.0 10
sudo update-alternatives --set /usr/bin/gem gem /usr/bin/gem2.0 10

Altre possibilità sono l'utilizzo di alcuni gestori versione ruby ​​come rbenv o RVM . Il primo è più complicato da configurare, ma meno confuso di RVM. Entrambi consentono l'installazione di quasi tutte le versioni di Ruby che si desidera utilizzare.


1
Sei sicuro che l'opzione di installazione sia corretta. stackoverflow.com/a/1892889/525174 la risposta mi ha aiutato, ma l'unica differenza è l'uso di --set switch.
Denis Besic,

@Tombart c'è un errore nel tuo codice.
horaceT

@horaceT Potresti essere più specifico? Sei sicuro di utilizzare la stessa versione di Ubuntu?
Tombart,

@Tombart Ho copiato e incollato la tua prima riga. Ecco l'errore: update-alternatives: error: alternative name (/usr/bin/ruby) must not contain '/' and spacesho ubuntu 14.04
horaceT

3

Se stai usando Ubuntu 14.04 (Trusty) o più recente, puoi aggiungere questo PPA:

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update

Quindi è possibile installare qualsiasi pacchetto desiderato, ad esempio

sudo apt-get install ruby2.2

Per poter costruire estensioni native devi anche sviluppare un pacchetto

sudo apt-get install ruby2.2-dev

Per passare facilmente tra le versioni installate di Ruby, installare l'interruttore ruby:

sudo apt-get install ruby-switch

Comandi di utiley

ruby -v
ruby-switch --list

Esempio

sudo ruby-switch --set ruby2.1

Da: https://www.brightbox.com/docs/ruby/ubuntu/

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.