Error de instalación de Rails “gem no válida: el paquete está dañado”

Estoy ejecutando Mac OSX 10.9.1 y estoy usando RVM para administrar Ruby v2.0.0-p353.

Cuando bash instalar Rails me sale este error:

Ryans-MacBook-Air-2:~ ryan$ gem install rails ERROR: Error installing rails: invalid gem: package is corrupt, exception while verifying: undefined method`path2class' for # (NoMethodError) in /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/i18n-0.6.9.gem 

Aquí hay una lista de gems que he instalado:

 Ryans-MacBook-Air-2:~ ryan$ gem list *** LOCAL GEMS *** bigdecimal (1.2.3, 1.2.0) bundler (1.5.1) bundler-unload (1.0.2) executable-hooks (1.2.6) gem-wrappers (1.2.1) io-console (0.4.2) json (1.8.1, 1.7.7) minitest (5.2.0, 4.3.2) psych (2.0.2, 2.0.0) rake (10.1.1, 0.9.6) rdoc (4.1.0, 4.0.0) rubygems-bundler (1.4.2) rvm (1.11.3.8) test-unit (2.5.5, 2.0.0.0) 

¿Alguien tiene sugerencias para solucionar esto?

La última versión ya no tiene el método class2path , por lo que se puede evitar el problema degradando la gem Psych a la versión 2.0.0:

 gem list psych # note down latest version gem uninstall psych -v 2.0.5 # or whatever version you have installed 

Después de instalar las gems, puede actualizar la gem Psych nuevamente si la necesita.

Tuve este problema exacto también con el entorno exacto como tú. Probé muchas cosas, incluido el enlace que Alexbhandari agregó al comentario. Pasé horas y, finalmente, decidí dejarlo todo y borrar por completo toda la carpeta ~ / .rvm y comenzar de nuevo.

Advertencia : esto solo se debe hacer para nuevas instalaciones sin considerar primero lo que puede perder, como los conjuntos de gems que puede haber construido usted mismo. Sin embargo, si se trata de una instalación nueva, no perderá nada que no pueda ser reemplazado.

Cambié el nombre de la carpeta ~ / .rvm para tener una copia de seguridad y comencé el proceso de instalación nuevamente. Esta vez funcionó y en realidad estaba funcionando en unos 20 minutos, en lugar de las horas que había perdido antes de intentar solucionar el problema.

Haces esto desde la ventana del terminal con el comando mv . El directorio ~ / .rvm estaba en mi directorio $ home:

 Stephens-MacBook-Pro-2:~ Steve$ mv .rvm old.rvm 

Sé que este es un paso drástico, sin embargo, me funcionó en una nueva instalación, así que espero que sirva de ayuda en un futuro.

Estaba teniendo el mismo problema y recordé haber visto algo en la salida de mi Terminal que decía que las herramientas para desarrolladores de XCode estaban desactualizadas o no estaban instaladas (no recuerdo cuál). Se sugirió correr:

 $ xcode-select --install 

Después de hacerlo, todavía estaba teniendo el problema. Intenté quitar el caché para el gemset (estoy usando RVM) pero todavía estaba recibiendo el error. Todavía estaba en ruby-2.0.0-p353. Hice lo siguiente y las cosas están funcionando para mí:

 $ rvm get stable $ rvm reload $ rvm install 2.1 $ rvm gemset create your_gemset_name # Updated my .ruby-version and .ruby-gemset files in my Rails app to use the new gemset $ cd /to/my/rails/app # You can run $ rvm list gemsets to make sure your app is now using the new gemset. It will point to the current one being used. $ bundle install 

Con una nueva versión de Ruby y un nuevo gemset, las cosas funcionan bien. No estoy seguro de lo que sucedió con el otro conjunto de gems, pero lo noté primero cuando intenté agregar la gem de sidekiq y ejecuté $ bundle install .

Me pregunto si tuvo algo que ver con una actualización reciente de XCode, ya que me preguntaron sobre las herramientas para desarrolladores.

Los siguientes pasos trabajaron para mí –

  1. Ir a la ubicación del paquete / gem dañado

    $ cd /Users/ryan/.rvm/gems/ruby-2.0.0-p353/cache/

  2. Eliminar paquete dañado / gem

    $ rm i18n-0.6.9.gem

  3. Ahora instala esa gem específica O $ bundle install