¿Cómo actualizar Ruby Version 2.0.0 a la última versión en Mac OSX Yosemite?

377

Necesito actualizar mi versión ruby ​​de 2.0.0 a la última versión, no puedo usar algunas gemas porque mi versión no está actualizada. Hace un tiempo utilicé Homebrew para instalar Ruby. ¿Cómo puedo actualizar mi versión de Ruby?

ChuchaC
fuente
qué sucede cuando escribe which rvmo which rbenven su línea de comando
MageeWorld
@ChuchaC Por favor, eche un vistazo aquí y aquí
vhristoskov
1
Parece que brew install rubyes suficiente. marque aquí
Venugopal

Respuestas:

709

Abre tu terminal y corre

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

Cuando esto se complete, debe reiniciar su terminal para que el rvmcomando funcione.

Ahora corre rvm list known

Esto muestra la lista de versiones del rubí.

Ahora, corre rvm install ruby@latestpara obtener la última versión de ruby.

Si escribe ruby -ven la terminal, debería ver ruby X.X.X.

Si aún te muestra ruby 2.0., corre rvm use ruby-X.X.X --default.

Abhinay Reddy Keesara
fuente
3
2.2.0 no es la última versión de Ruby.
Jordan Running
1
@Jordan My bad 2.3 es la versión estable
Abhinay Reddy Keesara
72
Esto funciona en Mac OS para instalar RVM:\curl -sSL https://get.rvm.io | bash -s stable --ruby
zed
77
2.4 es la última versión estable: rvm install ruby-2.4.0
seeARMS
77
La salida de rizos de tubería directamente a la ejecución es una pesadilla de seguridad a la espera de suceder.
arp
214

Solución única de preparación

Actualizar:

De los comentarios (felicitaciones a Maksim Luzik), no lo he probado, pero parece una solución más elegante:

Después de instalar ruby ​​mediante brew, ejecute el siguiente comando para actualizar los enlaces a la última instalación de ruby: brew link --overwrite ruby

Respuesta original:

Tarde a la fiesta, pero usar cerveza es suficiente. No es necesario instalar rvm y para mí simplemente complica las cosas.

En brew install rubyrealidad estás instalando la última versión (actualmente v2.4.0). Sin embargo, su ruta encuentra primero 2.0.0. Para evitar esto, simplemente cambie la precedencia ( fuente ). Lo hice cambiando ~/.profiley configurando:

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

Después de esto, descubrí que la gema del paquete seguía usando la versión 2.0.0, simplemente instálala de nuevo: gem install bundler

Sergio Basurco
fuente
2
Exactamente lo que estaba buscando, gracias. Si yo fuera un desarrollador de ruby, rvm tendría sentido, pero no lo soy, así que esto es perfecto.
Max
44
esto funciona, tenía que hacer "source ~ / .bash_profile" después de la instalación
mjpablo23
99
o después de instalar ruby ​​a través de brew, ejecute el siguiente comando para actualizar los enlaces a la última instalación de ruby:brew link --overwrite ruby
Maksim Luzik
1
en lugar de la overwriteversión ruby, puedes escribirbrew unlink ruby && brew link ruby
Hamsternik
77
La solución de @MaksimLuzik no me funciona en MacOS. brew link --overwrite rubyconduce aWarning: Refusing to link macOS-provided software: ruby
Rafael Beckel
97

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

* Si esto cumple con sus criterios: https://github.com/rbenv/rbenv/wiki/Why-rbenv? :

rbenv hace ...

  • Proporcionar soporte para especificar versiones de Ruby específicas de la aplicación .
  • Le permite cambiar la versión global de Ruby por usuario.
  • Le permite anular la versión de Ruby con una variable de entorno.

A diferencia de RVM, rbenv no ...

  • Necesita ser cargado en su caparazón. En cambio, el enfoque de rbenv shim funciona agregando un directorio a su $PATH.
  • Anular comandos de shell como cdo requerir hacks rápidos. Eso es peligroso y propenso a errores.
  • Tener un archivo de configuración. No hay nada que configurar, excepto qué versión de Ruby quieres usar.
  • Instala Ruby. Puede compilar e instalar Ruby usted mismo, o usar ruby-build para automatizar el proceso.
  • Gestionar gemas. Bundler es una mejor manera de administrar las dependencias de la aplicación. Si tiene proyectos que aún no utilizan Bundler, puede instalar el complemento rbenv-gemset .
  • Requerir cambios en las bibliotecas Ruby para compatibilidad. La simplicidad de rbenv significa que, mientras esté en tu $PATH, nada más necesita saber al respecto.

INSTALACIÓN

Instalar Homebrew http://brew.sh

Entonces:

$ brew update
 $ brew instalar rbenv
$ brew instalar rbenv ruby-build

# Agregue rbenv a bash para que se cargue cada vez que abra una terminal
echo 'si cual rbenv> / dev / null; luego evalúe "$ (rbenv init -)"; fi '>> ~ / .bash_profile
source ~ / .bash_profile

ACTUALIZACIÓN
Hay un paso adicional después debrew install rbenvEjecutarrbenv inity agregue una línea a.bash_profilecomo dice. Después de eso, vuelva a abrir la ventana de su terminal […] SGI 30 de septiembre a las 12:01 - https://stackoverflow.com/users/119770

$ rbenv install --list
Versiones disponibles:
 1.8.5-p113
 1.8.5-p114
 [...]
 2.3.1
 2.4.0-dev
 jruby-1.5.6
 [...]
$ rbenv install 2.3.1
[...]

Establecer la versión global:

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

Establezca la versión local de su repositorio agregando .ruby-versional directorio raíz de su repositorio:

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

Para MacOS visite este enlace

SoAwesomeMan
fuente
3
@ChuchaC Sin problema. Pero antes de hacerlo, esto es del léame de rbenv: "Nota de compatibilidad: rbenv es incompatible con RVM. Asegúrese de desinstalar completamente RVM y eliminar cualquier referencia a él de sus archivos de inicialización de shell antes de instalar rbenv". - github.com/rbenv/rbenv#installation
SoAwesomeMan
17
No ayudó. Todavía ruby -vrbenv global ...
obtengo la
8
Hay un paso adicional después de brew install rbenvEjecutar rbenv inity agrega una línea a .bash_profile como dice. Después de eso, vuelva a abrir su ventana de terminal, haga rbenv install 2.3.1, rbenv global 2.3.1 y rbenv hará su trabajo
SGI
66
Probablemente tarde, pero para futuras referencias de personas que encontraron el mismo problema que @tuxSlayer, rbenv rehashdespués de rbenv globaltrabajar para mí
Sean,
2
Después rbenv init, ruby -vgenera la versión correcta 2.1.2, pero las ejecuciones del paquete encuentran algún error como este paperclip-5.0.0.beta1 requires ruby version >= 2.1.0, which is incompatible with the current version, ruby 2.0.0p648. Finalmente lograr que funcione con una serie de rbenv rehash. Gracias @Sean
James
51

Terminal abierta:

sudo gem update --system 

¡Funciona!

Cristianetoo Geova
fuente
3
De hecho, esto parece funcionar, y es muchísimo más sencillo que las otras respuestas. Pero al instalar algunas gemas (escuche por ejemplo) se quejan de que la versión es inferior a la requerida.
William Isted
8
Esto es gema, no rubí
William GP
Brew only solution here
Sergio Basurco
2
Esta respuesta también me engañó. "Funciona" porque no se generan errores cuando lo ejecuta desde la consola. Sin embargo, no actualiza Ruby. Actualiza Ruby Gems. Siga una de las otras respuestas para actualizar Ruby (usando OS X Sierra).
información
41

Forma rápida de actualizar ruby ​​a v2.4 +

brew upgrade ruby

o

sudo gem update --system 
fatihyildizhan
fuente
44
Esto parece hacer un montón de cosas, pero actualizar Ruby no es una de ellas. 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
Esta es la mejor y correcta forma de actualizar la versión de ruby ​​usando brew.
user1101733
No funciona para mi 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, ¿puede dar algún detalle sobre su sistema operativo, comando, etc.?
fatihyildizhan
1
@fatihyildizhan aparentemente ruby ​​/ gems / etc está en un estado semibroken en Mavericks. He resuelto mis problemas actualizando a Catalina. No recuerdo todos los errores que tuve, pero había multitudes. No recuerdo si estaba tratando de actualizar cocoapods o gemas o qué, pero era esencialmente inútil.
Sébastien Loisel
31

Puede especificar la última versión de ruby ​​mirando https://www.ruby-lang.org/en/downloads/

  1. Obtenga la última versión:

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

  2. Instalarlo:

    rvm install 2.2

  3. Úselo por defecto:

    rvm use 2.2 --default

O ejecute el último comando de ruby:

rvm install ruby --latest
rvm use 2.2 --default
julien bouteloup
fuente
Gracias, esto funcionó para mí. La solución rbenvno funcionaba
tuxSlayer
¡¡Esto también funcionó para mí!! La solución con rbenvNO funcionó
ruoho ruotsi
5

Si tiene Mac OS e Brewinstalado, puede intentar el siguiente comando,

brew upgrade ruby
Zumry Mohamed
fuente
2

En caso de que alguien obtenga el mismo error que yo hice: "La instalación de requisitos falló con el estado: 1." esto es lo que debe hacer:

Instale Homebrew (por alguna razón podría no funcionar automáticamente) con este comando:

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

Luego proceda a instalar rvm nuevamente usando

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

Salga y vuelva a abrir Terminal y luego:

rvm install 2.2
rvm use 2.2 --default
Paula Hasstenteufel
fuente
2

brew install rbenv ruby-build

Agregue rbenv a bash para que se cargue cada vez que abra una terminal

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

source ~/.bash_profile

Instala Ruby

rbenv install 2.6.5

rbenv global 2.6.5

ruby -v

Enlace a la página de origen
Karats Mohanraj
fuente
0

En terminal: rvm gemset use global

Aramis
fuente
55
Si bien este fragmento de código puede ser la solución, incluir una explicación realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y que esas personas podrían no conocer los motivos de su sugerencia de código.
Adam
-2

La forma más simple es definitivamente ingresar el siguiente comando en la terminal:

sudo gem update --system

Puede agregar la bandera --no-documentsi no desea descargar la documentación. Aquí hay una salida de muestra después de ejecutar el 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
Reza Malik
fuente
1
¿No es esto lo mismo que la respuesta anterior ? Tengo curiosidad por qué la cantidad de votos negativos aquí versus votos positivos allá. ¿Es por la respuesta duplicada, o porque la gente no se dio cuenta lo suficientemente pronto, que la solución anterior también era solo para rubygems, no Ruby?
información