¿Cómo puedo actualizar mi ruby 1.9.2-p0 al último nivel de parche usando rvm?


Mi versión actual de ruby es ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0] pero quiero actualizarla al último nivel de parche usando rvm. ¿Cómo puedo hacer esto?

Author: Lan, 2011-01-01

8 answers

En primer lugar, actualice su instalación de RVM ejecutando rvm get stable.

Para asegurarse de que está ejecutando la nueva versión de RVM, deberá ejecutar rvm reload (o simplemente abrir un nuevo terminal).

Una vez hecho esto, puede pedirle a RVM que enumere las versiones de ruby disponibles para instalar ejecutando rvm list known.

En la salida ahora debería ver:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...

Los corchetes alrededor del nivel de parche indican que este es actualmente el nivel de parche predeterminado de RVM para ruby 1.9.2.

Finalmente, para instalar la nueva versión de ruby, simplemente ejecute rvm install 1.9.2 - ¡y espere a que se compile!

 159
Author: npad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-24 15:48:19

Actualice el intérprete de ruby y mantenga los conjuntos de gemas existentes:

$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y

Para reemplazar con la última versión estable de 1.9.2. Esto evita el desorden.

Algunos consejos útiles adicionales, gracias a los comentarios (@Mauro, @James, @ACB)

$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
 91
Author: oma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-22 13:02:41

Primera actualización RVM:

rvm get stable

Luego actualiza tu versión de Ruby:

rvm upgrade 2.0.0

Elija sí para todas las preguntas:

Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y

Si desea actualizar sus gemas a las últimas versiones, puede hacer:

rvm all do gem update

EDITAR: Acabo de hacer esto hoy para la última versión de ruby 2.0.0 (He actualizado de ruby-2.0.0-p195 a ruby-2.0.0-p353). Después de eso, estaba recibiendo fallo de segmentación cuando traté de actualizar gemas. Esto sucede porque las gemas se instalaron para ruby-2.0.0-p195 y algunos de son incompatibles con p353.

Ahora puede ir y tratar de encontrar las gemas que son incompatibles, pero la solución más fácil fue eliminar todas las gemas instaladas e instalarlas de nuevo. Simplemente eliminé el directorio gems/ruby-2.0.0-p353 que estaba ubicado en /usr/local/rvm. Podría estar en otro lugar para ti.

Luego corrí gem install bundler y para cada una de mis aplicaciones rails hice bundle install.

 31
Author: Viktor Fonic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-05 08:22:19

Así:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136
 13
Author: Amer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-26 23:17:19

Puede instalar cualquier nivel de parche siguiendo la página de su wiki .

Además, cada ruby es independiente, por lo que realmente no está "actualizando y manteniendo las gemas", sino instalando una nueva versión de parche y luego instalando las gemas en ese nuevo entorno ruby.

Esto puede ser donde los conjuntos de gemas entran en juego, sin embargo, no los uso.

No olvides actualizar tu rvm también, por si ha pasado algún tiempo.

 2
Author: pjammer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-01 14:25:03

La respuesta del Npad definitivamente establece lo básico, así que no repetiré esos pasos, pero hay varias respuestas aquí que sugieren usar rvm upgrade. Sé que rvm te da la opción, pero es un poco peligrosa.

IMO, la forma más segura y más "rvm" es primero rvm install la nueva versión de ruby, luego use el comando rvm gemset copy para copiar su conjunto de gemas a la nueva versión de ruby, por ejemplo, rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset. Luego puede cambiar fácilmente su proyecto a usar el conjunto de gemas recién copiado (recomiendo usar un archivo .rvmrc en su directorio de proyecto) y ver si su código falla. Si lo hace, cambiar a la antigua versión de ruby es solo cuestión de cambiar el conjunto de gemas.

Pero incluso si no usas conjuntos de gemas (aunque supongo que lo haces ya que etiquetaste rails en esta pregunta), el uso de rvm upgrade puede conducir a fallos inesperados. Y si su código se rompe, ahora tiene que volver a instalar la versión anterior de nuevo. Solo tómate un poco más de tiempo y hazlo de la manera limpia.

 2
Author: poetmountain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-14 04:24:25

Supongo que es rvm install 1.9.2-head

Puedes ver rubíes disponibles con rvm list known

 1
Author: Heikki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-01 14:22:12

Esta entrada de blog debería ser útil: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development

Esencial:

rvm get head
rvm reload

wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
 1
Author: Dawid Woźniak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-19 12:35:23