Gemspec no válido debido al formato de fecha en la especificación

Cuando incluyo una gem que hice, gracias a Bundler (versión 1.0.12), en un Gemfile y luego bash agrupar o rastrillar así:

$ rake

Tengo este mensaje de error:

 Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z" 

Estoy en el último Mac OS X (10.6.4), con:

 $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0] 

y:

 $ gem -v Invalid gemspec in [/Users/zagzag/.rvm/gems/ruby-1.9.2-p180@foobar/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z" 1.7.2 

Realmente no veo cómo resolver este problema. Gracias por cualquier idea

Esta es la forma en que corrijo el error de “formato de fecha no válido en la especificación”:

1.) Vaya a la carpeta de especificaciones ubicada en:

/usr/local/lib/ruby/gems/1.8/specifications/

2.) Encuentra la especificación que está causando el problema.

3.) Cambiar s.date = %q{2011-05-21 00:00:00.000000000Z} a s.date = %q{2011-05-21}

¡Eso es un GANADO para mí! Buena suerte

Aquí está el comando para arreglar esto para todas sus gems:

 perl -p -i -e 's/ 00:00:00.000000000Z//' ~/gems/specifications/*.gemspec 

Convierte s.date = %q{2011-05-21 00:00:00.000000000Z} a s.date = %q{2011-05-21} y debería arreglar su problema.

Por favor, observe el comentario de Damian Nowak. ¡Estos comandos posiblemente arruinan tus rubygems!

En Ubuntu 11.10, lo siguiente resolvió este error:

 sudo gem install rubygems-update sudo update_rubygems 

Lo siguiente puede funcionar en algunos sistemas, pero no en Debian:

 sudo gem update --system 

Puedes actualizar tu gem . Para solucionarlo, puede editar directamente el archivo gemspec , desde

 2011-04-21 00:00:00.000000000Z 

a

 YYYY-MM-DD 

O actualiza tus Rails también

 sudo gem update rails 

Arreglará el problema.

No especifique la hora … solo la fecha. 2011-04-21 debería funcionar bien.

Tenía el mismo problema. Parece un error en rubygems. Aquí está la confirmación que lo arregló: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

Necesita actualizar rubygems y bundler a las últimas versiones. Si aún tienes problemas después de eso, es posible que necesites eliminar y luego volver a instalar las gems que te estén dando problemas.

Esto es más un comentario a la respuesta de Ben Hall, pero aún no tengo ese privilegio, parece

las actualizaciones de gems no parecieron funcionar, estoy pensando que ni siquiera puedo cargar la gem debido al formato de fecha incorrecta. Cambiar manualmente las fechas era demasiado frustrante para ir una por una, así que un grep:

 grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)} 

Y para sed:

 sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec 

¡Y a tus propios riesgos! Sigo siendo un sed novato, pero funcionó para mí;)

En mi servidor de servidor de imágenes, la carpeta de especificaciones estaba ubicada en un lugar diferente. Aquí está el camino:

/usr/lib/ruby/gems/1.8/specifications

El error proporcionado debe dar la ruta a la carpeta de especificaciones.

El enfoque de la escopeta: desinstala todas las gems y vuelve a ejecutar el paquete.

  1. gem list --no-version | xargs gem uninstall -aIx
  2. rm -i `rvm gemdir`/specifications/*.gemspec
  3. gem update --system
  4. gem install bundler
  5. bundle install

(Hasta que la corrección de errores entre en una versión estable de Rubygems) lo resolví reinstalando la misma versión de cualquier gem generadora de advertencia usando el modificador de conversión del comando gem.

Como dijo Ben Hall, debe arreglar el archivo gemspec que puede cambiar para el sistema. Para saber qué archivo es, vea qué archivo dice en el informe de error, por ejemplo:

Gemspec no válido en [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: formato de fecha no válido en la especificación: “2011-12-28 00: 00: 00.000000000Z”

En este ejemplo, debe editar el archivo “/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec” y cambiar “2011-12-28 00: 00: 00.000000000Z” para “2011-12-28”. en la opción s.date.

Tenía este problema aún ahora. La actualización de Rubygems lo resolvió bien:

 gem update --system 

Este es mi entorno:

 RubyGems Environment: - RUBYGEMS VERSION: 1.8.10 - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.1.0] - INSTALLATION DIRECTORY: /Users/user/.rvm/gems/ruby-1.9.2-p290@app - RUBY EXECUTABLE: /Users/user/.rvm/rubies/ruby-1.9.2-p290/bin/ruby - EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/ruby-1.9.2-p290@app/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-darwin-11 - GEM PATHS: - /Users/user/.rvm/gems/ruby-1.9.2-p290@app - /Users/user/.rvm/gems/ruby-1.9.2-p290@global - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 

Finalmente me las arreglé para encontrar una causa / una forma de prevenir estos errores en mi sistema. Acabo de volver a las versiones de pepino y pepino-rails 1.0.2. Usar las últimas versiones fue hacer esto …

Incluso si instala la última versión de una gem con un formato de fecha válido, asegúrese de gem cleanup GEMNAME después, ya que gem se quejará de las especificaciones para las bibliotecas antiguas.

La reinstalación de sus gems puede ser la solución en muchos de estos estados de máquina ligeramente diferentes.

En mi caso:

 cd /Library/Ruby/Gems/1.8/specifications && sudo rm -rf * 

En mi caso, las otras soluciones más creativas fallaron.

Mi problema era obtener Invalid gemspec cuando intentaba usar cocoapods. Volví a gem install cocoapods y todo fue color de rosa.