rubygems bundler ruby-1.9 ruby-1.9.2

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



bundler ruby-1.9 (15)

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

Cuando incluyo una gema que hice, gracias a Bundler (versión 1.0.12), en un Gemfile y luego intento 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


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

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.


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.


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.


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


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 ...


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

las actualizaciones de gemas no parecieron funcionar, estoy pensando que ni siquiera puedo cargar la gema 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í;)


Incluso si instala la última versión de una gema 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 gemas 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.


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


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 rieles también

sudo gem update rails

Arreglará el problema.



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

gem update --system


El enfoque de la escopeta: desinstala todas las gemas 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

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