Cuando incluyo una gema que hice, gracias a Bundler (versión 1.0.12), en un Gemfile y luego trato de empaquetar 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.
rubygems
bundler
ruby-1.9
ruby-1.9.2
Zag zag ..
fuente
fuente
Respuestas:
Esta es la forma en que soluciono el error "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.) Encuentre la especificación que está causando el problema.
3.) Cambiar
s.date = %q{2011-05-21 00:00:00.000000000Z}
as.date = %q{2011-05-21}
¡Eso es una GANANCIA para mí! Buena suerte
fuente
Aquí está el comando para arreglar esto para todas sus gemas:
Convierte
s.date = %q{2011-05-21 00:00:00.000000000Z}
as.date = %q{2011-05-21}
y debería solucionar el problema.fuente
git init . && git commit -am "backup
Tenga en cuenta el comentario de Damian Nowak. ¡Estos comandos posiblemente estropeen tus rubygems!
En Ubuntu 11.10, lo siguiente resolvió este error:
Lo siguiente puede funcionar en algunos sistemas pero no en Debian:
fuente
Puede actualizar su
gem
. Para solucionar este problema, puede editar elgemspec
archivo directamente, desdea
O actualice sus rieles también
Solucionará el problema.
fuente
specifications
directorio esta es mispecifications
ruta de directorio -/home/sayuj/.rvm/gems/ruby-1.9.2-p180/specifications/
No especifique la hora ... solo la fecha.
2011-04-21
debería funcionar bien.fuente
git ls-files
.split ("\ n ") s.test_files =git ls-files -- {test,spec,features}/*
.split (" \ n ") s.require_paths = [" lib "] endTuve el mismo problema. Parece un error en rubygems. Aquí está el compromiso que lo solucionó: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7
Necesita actualizar rubygems y bundler a las últimas versiones. Si aún tiene problemas después de eso, es posible que deba eliminar y luego reinstalar cualquier gema que le esté causando problemas.
fuente
Esto es más un comentario a la respuesta de Ben Hall, pero parece que todavía no tengo ese privilegio.
Las actualizaciones de gemas no parecen funcionar, creo que ni siquiera pueden cargar la gema debido al formato de fecha incorrecto. cambiar manualmente las fechas era demasiado frustrante para ir una por una, por lo que un grep:
Y para sed:
¡¡Y bajo tu propio riesgo !! Todavía soy un novato en sed, pero funcionó para mí;)
fuente
En mi servidor Slicehost, la carpeta de especificaciones estaba ubicada en un lugar diferente. Aquí está el camino:
/usr/lib/ruby/gems/1.8/specifications
El error proporcionado debería dar la ruta a la carpeta de especificaciones.
fuente
El enfoque de la escopeta: desinstale todas las gemas y vuelva a ejecutar el paquete.
gem list --no-version | xargs gem uninstall -aIx
rm -i `rvm gemdir`/specifications/*.gemspec
gem update --system
gem install bundler
bundle install
fuente
.rvmrc
archivo, tenga cuidado al ejecutar la línea 2 porque gemdir puede producir una salida adicional.(Hasta que la corrección de errores llegue a una versión estable de Rubygems) Lo resolví reinstalando la misma versión de cualquier gema generadora de advertencias usando el interruptor --version del comando gem.
fuente
Como dijo Ben Hall, debe reparar el archivo gemspec que puede cambiar de sistema a sistema. Para saber qué archivo es, vea qué archivo se indica en el informe de errores, por ejemplo:
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" por "2011-12-28" en la opción s.date.
fuente
Tenía este problema todavía ahora. Actualizar Rubygems lo resolvió bien:
fuente
Este es mi entorno:
Finalmente logré encontrar una causa / una forma de evitar estos errores en mi sistema. Acabo de volver a la versión 1.0.2 de pepino y cucumber-rails. Usar las últimas versiones estaba haciendo esto ...
fuente
Incluso si instala la última versión de una gema con un formato de fecha válido, asegúrese de hacerlo
gem cleanup GEMNAME
después, yagem
que todavía se quejará de las especificaciones de las bibliotecas más antiguas.fuente
Reinstalar sus gemas puede ser la solución en muchos de estos estados de máquina ligeramente diferentes.
En mi caso:
En mi caso, las otras soluciones más creativas fallaron.
Mi problema fue
Invalid gemspec
al intentar usar cocoapods. Corrí degem install cocoapods
nuevo y todo fue color de rosa.fuente