Cómo actualizar rubygems


206

Necesito actualizar gemas a 1.8 Intenté instalar los respectivos paquetes de Debian pero parece que no se está actualizando

anujm@test:~$ dpkg -l |grep -i rubygem
ii  rubygems                               1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems-lwes                          0.8.2-1323277262                                LWES rubygems
ii  rubygems1.8                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems1.9                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
anujm@test:~$ 


anujm@test:~$ gem
gem     gem1.8  gem1.9  
anujm@test:~$ sudo gem1.8 install serve
ERROR:  Error installing serve:
        multi_json requires RubyGems version >= 1.3.6
anujm@test:~$

2
Solo para aclarar, su pregunta es sobre cómo actualizar Rubygems en sí mismo, no ninguna gema en particular administrada por rubygems.
— Michael

Respuestas:


471

Instalar rubygems-update

gem install rubygems-update
update_rubygems
gem update --system

ejecuta estos comandos como root o usa sudo.


1
Recibo esta excepción cuando sigo la sugerencia de actualización de gemas: el sistema está deshabilitado en Debian. RubyGems puede actualizarse utilizando los repositorios oficiales de Debian por aptitude o apt-get.
— Anuj

3
Aquí debido a problemas con la gema Unicode ( github.com/blackwinter/unicode/issues/5 ): después de ejecutar la solución de respuesta, tuve que ejecutar gem pristine unicodela reconstrucción de la gema y hacerla utilizable.
— realmente agradable el

1
Gracias, me ayudó a instalar minitesten una partición NFS cf. github.com/rubygems/rubygems/issues/1161
— Oncle Tom

12
rubygems-updateestá instalado por defecto. Entonces, es cuestión de correr solo gem update --system.
— dskecse

2
Por lo general, nunca querrás ejecutar este comando como sudo. Eso actualizará el sistema ruby. Considere usar rvmorbenv
— Hendrik

54

Puede actualizar todas las gemas simplemente realizando:

sudo gem update


44
Esta es una respuesta buscando una pregunta.
— Michael

1
sin sudosi instaló gemas como usuario habitual (instalar gemas como root no es muy bueno de todos modos).
— akostadinov

44
La pregunta no es "¿Cómo actualizo todas las gemas?" sino "¿Cómo actualizo RubyGems en mi máquina?"
— aceofbassgreg

19

O:

gem update `gem outdated | cut -d ' ' -f 1`

#brilliant Gracias por este. Solo agregué --forcepara evitar que la automatización se detenga para la confirmación de sobrescritura
— SaxDaddy

no responde la pregunta
— agbodike

Respectivamente, con errores shellcheck fijo: gem update "$(gem outdated | cut -d ' ' -f 1)";.
— BernhardWebstudio

11

Puedes actualizar gem a cualquier versión específica como esta,

gem update --system 'version'

gem update --system '2.3.0'

1
su comando no funciona en la distribución basada en la actualización de la gema de Debian - ERROR del sistema "2.1.0": Al ejecutar la actualización de la gema gem ... (RuntimeError) - el sistema está deshabilitado en Debian, porque sobrescribirá el contenido del paquete Debian de rubygems, y podría dañar su sistema Debian de maneras sutiles. La forma compatible con Debian de actualizar rubygems es a través de apt-get, utilizando los repositorios oficiales de Debian. Si realmente sabe lo que está haciendo, aún puede actualizar rubygems configurando la variable de entorno REALLY_GEM_UPDATE_SYSTEM, pero recuerde que Debian no lo admite por completo.
— Jeff


5

Encontré otras respuestas inexactas / desactualizadas. Lo mejor es consultar la documentación real .

Versión corta: en la mayoría de los casos gem update --system será suficiente.

No debe usar a ciegas sudo. De hecho, si no está obligado a hacerlo, lo más probable es que no lo use.


4

Para mí fue suficiente simplemente correr

gem update

55
Esto es para actualizar sus gemas, no el software de rubygems en sí.
— Peter H. Boling

1
Es cierto, pero este es el primer resultado de Google para búsquedas como "actualizar versión de gema", así que me alegra que esta respuesta haya estado aquí.
— ncrypticus

-1

Para actualizar solo una gema (y sus dependencias), haga:

    bundle update gem-name

Pero para actualizar solo la gema sola (sin actualizar sus dependencias), haga

    bundle update --source gem-name

1
Esto es para actualizar gemas específicas, no el software de rubygems en sí.
— thisismydesign

1
@thisismydesign ¿Creo que especifiqué que esto actualizará solo una gema específica?
— Ruto Collins el

Sí, pero de eso no se trata la pregunta.
— thisismydesign

1
Veo. Pero sé que esto ayudará a alguien como yo que aterrizó aquí primero :)
— Ruto Collins
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.