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.