Lorsque j'inclus un bijou que j'ai fait, grâce à Bundler (version 1.0.12), dans un Gemfile, puis j'essaie de regrouper ou de ratisser comme ça:
$ rake
J'ai ce message d'erreur:
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"
Je suis sur le dernier Mac OS X (10.6.4), avec:
$ Ruby -v
Ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0]
et:
$ 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
Je ne vois vraiment pas comment résoudre ce problème. Merci pour toutes les idées.
Voici la façon dont je corrige l'erreur "format de date non valide dans les spécifications":
1.) Accédez au dossier de spécifications situé à:
/usr/local/lib/Ruby/gems/1.8/specifications/
2.) Recherchez la spécification à l'origine du problème.
3.) Changer s.date = %q{2011-05-21 00:00:00.000000000Z}
à s.date = %q{2011-05-21}
C'est un GAGNANT pour moi! Bonne chance
Voici la commande pour corriger cela pour toutes vos gemmes:
Perl -p -i -e 's/ 00:00:00.000000000Z//' ~/gems/specifications/*.gemspec
Il convertit s.date = %q{2011-05-21 00:00:00.000000000Z}
à s.date = %q{2011-05-21}
et devrait résoudre votre problème.
Veuillez noter le commentaire de Damian Nowak. Ces commandes peuvent gâcher vos rubygèmes!
Sur Ubuntu 11.10, les éléments suivants ont résolu cette erreur:
Sudo gem install rubygems-update
Sudo update_rubygems
Les éléments suivants peuvent fonctionner sur certains systèmes mais pas sur Debian:
Sudo gem update --system
Vous pouvez mettre à jour votre gem
. Pour résoudre ce problème, vous pouvez modifier le fichier gemspec
directement - à partir de
2011-04-21 00:00:00.000000000Z
à
YYYY-MM-DD
Ou mettez à niveau votre Rails également
Sudo gem update Rails
Cela résoudra le problème.
Ne spécifiez pas l'heure ... juste la date. 2011-04-21
devrait fonctionner correctement.
Eu le même problème. Cela ressemble à un bug dans rubygems. Voici le commit qui l'a corrigé: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7
Vous devez mettre à jour rubygems et bundler vers les dernières versions. Si vous rencontrez toujours des problèmes après cela, vous devrez peut-être supprimer puis réinstaller toutes les gemmes qui vous posent des problèmes.
C'est plus un commentaire à la réponse de Ben Hall, mais je n'ai pas encore ce privilège, il semble
les mises à jour de gemmes ne semblaient pas fonctionner, je pense qu'il ne peut même pas charger la gemme en raison du mauvais format de date. changer les dates manuellement était trop frustrant pour aller un par un, donc un grep:
grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}
Et pour sed:
sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec
Et à vos risques et périls !! Je suis toujours un débutant sed, mais cela a fonctionné pour moi;)
Sur mon serveur slicehost, le dossier des spécifications se trouvait à un endroit différent. Voici le chemin:
/usr/lib/Ruby/gems/1.8/specifications
L'erreur fournie devrait donner le chemin d'accès au dossier de spécifications.
L'approche du fusil de chasse: Désinstaller toutes les gemmes et relancer le bundler.
gem list --no-version | xargs gem uninstall -aIx
rm -i `rvm gemdir`/specifications/*.gemspec
gem update --system
gem install bundler
bundle install
Comme l'a dit Ben Hall, vous devez corriger le fichier gemspec qui peut changer d'un système à l'autre. Pour savoir quel fichier est voir quel fichier est dit dans le rapport d'erreur, par exemple:
Gemspec non valide dans [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: format de date non valide dans la spécification: "2011-12-28 00: 00: 00.000000000Z"
Dans cet exemple, vous devez modifier le fichier "/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec" et modifier "2011-12-28 00: 00: 00.000000000Z" pour "2011-12-28" dans l'option s.date.
Avait encore ce problème maintenant. La mise à jour de Rubygems l'a résolu très bien:
gem update --system
(Jusqu'à ce que le correctif de bogue entre dans une version stable de Rubygems) Je l'ai résolu en réinstallant la même version de toutes les gemmes générant des avertissements en utilisant le commutateur --version de la commande gem.
Même si vous installez la dernière version d'une gemme avec un format de date valide, assurez-vous de gem cleanup GEMNAME
après, puisque gem
se plaindra toujours des spécifications des anciennes bibliothèques.
La réinstallation de vos gemmes peut être la solution dans plusieurs de ces états de machine légèrement différents.
Dans mon cas:
cd /Library/Ruby/Gems/1.8/specifications &&
Sudo rm -rf *
Dans mon cas, les autres solutions plus créatives ont échoué.
Mon problème devenait Invalid gemspec
lorsque vous essayez d'utiliser des cocoapodes. Iran gem install cocoapods
encore et tout était rose.
Voici mon environnement:
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/
J'ai finalement réussi à trouver une cause/un moyen d'éviter ces erreurs sur mon système. Je reviens juste à la version 1.0.2 de concombre et de concombre-Rails. Utiliser les dernières versions faisait cela ...