Instalar ruby ​​2.2.3 a través de apt

16

¿Cómo instalar Ruby 2.2.3 a través de apt en Ubuntu Wily? Lo intenté sudo apt-get install ruby2.2-devy sudo apt-get install ruby2.2(Cuál es la diferencia, por cierto) y ambos comandos parecen haberse instalado bastante. Sin embargo, no hay ejecutable rubí después.

Michiel de Mare
fuente
¿Instalas absolutamente quieres instalar Ruby 2.2.3 a través de apt? El paquete * -dev contiene encabezados y archivos que * pueden necesitar funcionar correctamente. consulte el ruby-lang.org oficial que contiene la información que necesita para instalar ruby ​​2.2.3 correctamente
enzo
por favor, consulte si es útil [ gorails.com/setup/ubuntu/15.10]
Ravan
1
@maetsoh ¿Por qué instalaría todos los paquetes con apt, excepto ruby? Me gustan los gestores de paquetes.
Michiel de Mare
¿Es Ruby parte del mecanismo de "alternativas" en Ubuntu? De lo contrario, podría valer la pena usar algo como rbenv para administrar las instalaciones de Ruby. Especialmente si necesita usar diferentes versiones de Ruby al mismo tiempo. El enlace suave puede ser un poco cansado al desarrollar Rails, etc.
Utilizo rbenv localmente para cambiar las versiones, por lo que vale la pena, pero en la producción solo necesito 1 versión ruby, y luego prefiero el administrador de paquetes estándar. Leeré sobre el mecanismo de "alternativas". ( manpages.ubuntu.com/manpages/vivid/en/man8/… )
Michiel de Mare

Respuestas:

7

apt-get install ruby2.2te da un ejecutable ruby, simplemente se llama ruby2.2. Gem e irb son lo mismo (es decir gem2.2 install bundler, funcionará, irb2.2le dará un aviso irb).

Esto es normal en Ubuntu y el sistema de alternativas generalmente significa que no tiene que preocuparse por eso, pero por alguna razón, Ruby no es administrado por alternativas en Ubuntu. Pero podemos hacerlo:

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.2 400 \
 --slave /usr/bin/rake rake /usr/bin/rake2.2 \
 --slave /usr/bin/ri ri /usr/bin/ri2.2 \
 --slave /usr/bin/rdoc rdoc /usr/bin/rdoc2.2 \
 --slave /usr/bin/gem gem /usr/bin/gem2.2 \
 --slave /usr/bin/irb irb /usr/bin/irb2.2 \
 --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby2.2.1.gz \
 --slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake2.2.1.gz \
 --slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri2.2.1.gz \
 --slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc2.2.1.gz \
 --slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem2.2.1.gz \
 --slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb2.2.1.gz

Al ejecutar esto, se registrará ruby ​​con el sistema de alternativas y, como solo hay una opción, se establecerá ruby 2.2como predeterminado. Esto creará enlaces simbólicos y le permitirá usar ruby/ gem/ etc. sin agregar 2.2 al final.

Esta es una versión ligeramente actualizada de las instrucciones que se encuentran en https://leonard.io/blog/2012/05/installing-ruby-1-9-3-on-ubuntu-12-04-precise-pengolin/

Edmund
fuente
actualización-alternativas: error: la gema alternativa no puede ser esclava de rubí: es una alternativa maestra
Yevgen Kulik
17

Ok, esto me funcionó en vivo al menos:

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.2 ruby2.2-dev

En wily, recibo un error porque http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/wily/main/binary-amd64/falta la URL , solo hay http://ppa.launchpad.net/brightbox/ruby-ng/ubuntu/dists/devel/main/binary-amd64/.

Michiel de Mare
fuente
lo mismo en debian jessie: /
holms