Eliminar todas las gemas instaladas y comenzar de nuevo

92

Recientemente comencé a aprender Ruby y Ruby on Rails, y he visto una gran cantidad de materiales para comenzar. Últimamente he descubierto que sigo recibiendo errores en los que las gemas no se instalarán o se instalarán pero no se pueden usar por alguna razón, y he decidido que quiero eliminar todo para volver a tener Ruby instalado. y empezar de nuevo con la instalación. Un video de entrenamiento me hizo instalar la mayoría de mis gemas con RVM, así que no sé si eso cambia algo.

Entonces, en resumen, mi pregunta es "¿Cómo puedo deshacerme de RVM, Rubygems y todas las gemas instaladas para poder comenzar de nuevo solo con Ruby?"

Editar: estoy en Mac OS 10.6

Dave Long
fuente
1
¿Lo instaló en / opt / ruby? Eso es lo que hago para eliminar el rubí rápido.
alternativa
Consulte stackoverflow.com/questions/15100496/ ... Esto también debería funcionar para 1.9.3 :)
Nathan Lilienthal
El título de su pregunta y el resumen de la "pregunta breve" al final son dos cosas diferentes ...
mpowered

Respuestas:

118

Desde el sitio de soporte de RVM :

RVM instala todo en ~ / .rvm. Para eliminar RVM de su sistema, ejecute 'rm -rf ~ / .rvm'. Puede tener un archivo de configuración adicional en ~ / .rvmrc y, por supuesto, el gancho RVM en sus archivos de inicio bash / zsh.

Entonces, simplemente vaya a la línea de comando y escriba rm -rf ~/.rvm

Todas las gemas instaladas están en las carpetas ~ / .rvm, por lo que hacer lo anterior eliminará las gemas y los rubíes instalados de una sola vez.

Las gemas que agregó antes de RVM con la instalación predeterminada de ruby ​​se pueden eliminar escribiendo esto en el símbolo del sistema:

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
michaelmichael
fuente
1
Acabo de ejecutar eso, pero gems todavía está instalado. Sin embargo, parece que lo ha recargado. No estoy seguro si se recargó con los valores predeterminados de Mac XCode o qué ...
Dave Long
agregó otra línea para deshacerse de las gemas que agregó antes de RVM
michaelmichael
1
Agregaría las opciones '-all -x -I' a la desinstalación de gemas para evitar que le pregunte (para binarios, versiones o dependencias) durante la desinstalación.
timmfin
4
Como referencia, el comando completo es: for x in `gem list --no-versions`; desinstalar gema $ x -a -x -I; hecho
Daniel Rehner
7
Para más referencia, otra opción:gem list --no-versions | xargs gem uninstall -aIx
trisweb
68
gem uninstall -aIx

Desinstala todas las gemas sin aviso.

Opciones

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation
Pantalones
fuente
Eso me da:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370
34

Para Windows y Unix, copie / pegue en el símbolo del sistema ( Ruby 1.9.x ).

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"
Haris Krajina
fuente
2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
isomorfismos
@isomorphismes no estoy seguro de si lo he arreglado, pero puedes probar el comando ahora.
Haris Krajina
22

usando RVM, podría simplemente escribir ...

rvm gemset empty GEMSET

donde GEMSET es el conjunto de gemas que le gustaría vaciar. entonces...

instalar paquete

yum install bundler y finalmente

bundle install
mfittko
fuente
14

rvm implode(ver cli docs ) parece funcionar, e incluso le dice dónde buscar las sobras

chesterbr
fuente
2
Esta es técnicamente la respuesta más correcta y exactamente para lo que fue diseñada.
Actualizado el
"implosión: elimina todas las instalaciones de ruby ​​que administra, todo en ~ / .rvm"
Nein
5
  1. Esto es un trabajo para mí en Ubuntu 16.04. Para mí, cuando estaba ejecutando command rails -v arroja errores debido a NameError. He instalado 3 versiones de rieles (4.2.0, 4.2.6, 5.0.0.1). Estaba tratando de desinstalar la gema innecesaria usando el comando gem uninstall rails -v versión número pero no puedo, pero encuentro una manera de resolver este problema. Para desinstalar todas las gemas, debe recorrer todas las entradas en la lista de gemas con secuencias de comandos bash. Este método es muy inconveniente. Gracias a Rubygems 2.1.0, ahora puede hacerlo con un comando.

    PASO 1

    En primer lugar, asegúrese de actualizar Rubygems a 2.1.0 o más reciente. Para esto, ejecute este comando (en caso de que esté trabajando en una versión anterior. Puede verificar su versión de gema usando este comando cualquiera de ellos gem -v o gem --version )

    actualización de gemas - sistema

    gema --versión

    PASO 2

    Ejecute este comando en su terminal

    desinstalar gemas --todos

    Paso 3

    Instalar paquetes de gemas (creo que no es necesario solo por precauciones) paquete de instalación de gemas

    Paso - 4
    Instale los rieles en su sistema usando este comando gem install rails -vspecific version you want to install puede verificar la versión de rieles en el sitio oficial. Ejemplo de rieles de todas las versiones : - He instalado la versión de rieles 4.2.6, se instala según el requisito. gem install rails -v 4.2.6

    Paso - 5

    Finalmente, verifique la versión de la aplicación de marco de rieles instalada mediante el uso de rieles de comando básicos -v . Se hará eco de la versión actual de los frameworks rails. Disfruta :)

    Referencias

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html

Mukesh Kumar Gupta
fuente
2

Paso 1:

Primero me encontré con un error que decía:

No tiene permisos de escritura para el directorio / usr / bin

Para obtener el permiso, me convertí en un usuario root con (esto es potencialmente peligroso por razones más allá de mi comprensión actual) :

sudo -s

Crédito

Paso 2:

Luego, seguí encontrándome con un error que decía:

[gema] no se puede desinstalar porque es una gema predeterminada

Esto me permitió desinstalar todo:

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

Crédito

John R. Perry
fuente