¿Cómo establecer el valor predeterminado en ruby ​​2.1.2?


12

Tengo ruby ​​1.9.3 y 2.1.2. Cuando abro el terminal por defecto, usa ruby ​​1.9.3 pero quiero usar ruby ​​2.1.2.

¿Cómo puedo configurar ruby ​​2.1.2 como predeterminado?

Respuestas:


6

Debe instalar RVM para administrar sus versiones de Ruby. Para instalar RVM haz

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

Si eso se rompe por alguna razón, siga las instrucciones aquí: /programming//a/9056395/2376036

Luego, para hacer el predeterminado 2.1.2 hacer

rvm --default use 2.1.2

Hola, muchas gracias por su amable ayuda. Sí, seguí sus instrucciones, pero en el terminal mientras instalo rvm dice "paquete rvm roto, compruebe stackoverflow.com/a/9056395/497756 ", así que seguí el camino y lo obtuve. al éxito, gracias por su ayuda
Rasool

Me alegro de poder ayudar, marque mi respuesta como aceptada para que las personas en el futuro puedan saber lo que funcionó para usted. Agregaré el contexto adicional de su comentario en mi respuesta.
Termhn

19

/usr/bin/rubysuele ser un enlace a /etc/alternatives/ruby, que a su vez se vincula al ejecutable de la versión predeterminada de ruby ​​(por ejemplo /usr/bin/ruby1.9). Puede cambiar la versión predeterminada configurada con:

sudo update-alternatives --config ruby

Si la versión deseada no se configuró como alternativa ruby(por ejemplo, si no está configurada por el administrador de paquetes), puede hacerlo usted mismo con

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

donde <PRIORITY>es un entero positivo Entonces puedes realizar el primer paso.

Para más detalles vea el manual deupdate-alternatives(8) .


5

En Ubuntu 14.04 puedes instalar el ruby2.0paquete. Actualmente el paquete ofrece la versión 2.0.0p384 (eventualmente el paquete podría ofrecer Ruby 2.1 o más reciente). Esta es la forma más simple de cómo instalar binarios de ruby:

sudo apt install ruby2.0

Entonces tendrás binarios ruby2.0y gem2.0. Para reemplazar el ruby ​​1.9 predeterminado por 2.0, puede hacer lo siguiente ( NOTA: puede romper las aplicaciones que estrictamente requieren 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

Otras posibilidades son usar algún administrador de versiones de ruby ​​como rbenv o RVM . El primero es más complicado de configurar, pero menos hacky que RVM. Ambos permiten instalar casi cualquier versión de Ruby que le gustaría usar.


1
¿Está seguro de que el interruptor de instalación es correcto? La respuesta de stackoverflow.com/a/1892889/525174 me ayudó, pero la única diferencia es el uso --conmutador de configuración.
Denis Besic

@Tombart hay un error en su código.
horaceT

@horaceT ¿Podría ser más específico? ¿Estás seguro de que estás usando la misma versión de Ubuntu?
Tombart

@Tombart Copié y pegué tu primera línea. Aquí está el error: update-alternatives: error: alternative name (/usr/bin/ruby) must not contain '/' and spacestengo ubuntu 14.04
horaceT

3

Si está utilizando Ubuntu 14.04 (Trusty) o más reciente, puede agregar este PPA:

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

Luego puede instalar el paquete que desee, por ejemplo

sudo apt-get install ruby2.2

Para poder construir extensiones nativas también necesitarás un paquete de desarrollo

sudo apt-get install ruby2.2-dev

Para cambiar fácilmente entre las versiones instaladas de Ruby, instale el interruptor ruby:

sudo apt-get install ruby-switch

Comandos de utilidad

ruby -v
ruby-switch --list

Ejemplo

sudo ruby-switch --set ruby2.1

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.