web-dev-qa-db-fra.com

Spécification du format de date non valide dans gemspec

Je reçois le message d'erreur suivant lorsque j'essaie d'utiliser des gemmes dans Windows, et j'ai également évoqué cet article stackoverflow et rubygems and Rails mis à jour. Mais rien ne pourrait résoudre le problème.

Ce qui suit est l'erreur complète,

 D: \> gem env 
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/Tilt-1.3.3. gemspec]: format de date non valide dans la spécification: "2011-08-25 00:00:00 
. 000000000Z" 
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.7.7/lib/Ruby/ gems/1.8/specifications 
/execjs-1.2.4.gemspec]: format de date non valide dans la spécification: "2011-08-03 00:00: 
 00.000000000Z" 
 invalide gemspec in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/temple-0.3.3.gemspec]: format de date non valide dans la spécification: "2011-08-26 00: 00: 
 00.000000000Z "
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/Guard-0.6.3.gemspec ]: format de date invalide dans la spécification: "2011-09-01 00: 00: 0 
 0.000000000Z" 
 Gemspec invalide dans [D: /RailsInstaller/Ruby1.7.7/lib/Ruby/gems /1.8/specifications
/guard-livereload-0.3.1.gemspec]: format de date non valide dans la spécification: "2011-09 
 - 01 00: 00: 00.000000000Z "
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/Rack-cache-1.0.3.gemspec] : format de date non valide dans la spécification: "2011-08-27 00 
: 00: 00.000000000Z" 
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8 /specifications
/tilt-1.3.3.gemspec]: format de date non valide dans la spécification: "2011-08-25 00:00:00 
. 000000000Z" 
 Gemspec in invalide [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/Execjs-1.2.4.gemspec]: format de date non valide dans la spécification: "2011-08-03 00:00: 
 00.000000000Z "
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/Temple-0.3.3.gemspec]: Format de date non valide dans la spécification: "2011-08-26 00:00: 
 00.000000000Z" 
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/ spécifications 
/guard-0.6.3.gemspec]: format de date non valide dans la spécification: "2011-09-01 00: 00: 0 
 0. 000000000Z "
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.7.7/lib/Ruby/gems/1.8/specifications 
/Guard-livereload-0.3.1.gemspec]: format de date non valide dans spécification: "2011-09 
 - 01 00: 00: 00.000000000Z" 
 Gemspec non valide dans [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications 
/rack-cache-1.0.3.gemspec]: format de date non valide dans la spécification: "2011-08-27 00 
: 00: 00.000000000Z" 
 RubyGems Environment: 
 - VERSION RUBYGEMS: 1.7.2 
 - Ruby VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32] 
 - INSTALLATION REPERTOIRE: D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8 
 - Ruby EXECUTABLE: D: /RailsInstaller/Ruby1.8.7/bin/Ruby.exe 
 - RÉPERTOIRE EXÉCUTABLE: D: /RailsInstaller/Ruby1.8.7/bin 
 - PLATEFORMES DE RUBYGEMS: 
 - Ruby 
 - x86-mingw32 
 - GEM PATHS: 
 - D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8 
 - C:/Documents and Settings/jeygokul/.g em/Ruby/1.8 
 - CONFIGURATION GEM: 
 -: update_sources => true 
 -: verbose => true 
 -: benchmark => false 
 -: backtrace => false 
 -: bulk_threshold => 1000 
 - SOURCES DISTANTES: 
 - http://rubygems.org/
111
Abhishek

J'ai résolu ce problème par mise à niveau de ma RubyGems vers la version 1.8.1 avec

gem update --system

Edit: Vous pouvez également essayer (comme suggéré par ZeissS)

gem install rubygems-update
update_rubygems
45
Michael

La solution ultime est la suivante:

Recherchez les fichiers "spec" dans votre répertoire Ruby: * ) C:\Ruby187\lib\Ruby\gems\1.8\specifications *

Si un fichier gemspec contient quelque chose comme ceci: s.date =% q {2011-10-13 : 00: 00.000000000Z} Supprimez ensuite le : 00: 00.000000000Z = part: s.date =% q {2011-10-13}

Après avoir sauvegardé ces fichiers gemspec, le problème est résolu.

132
GaborKomaromi

Aucune de ces solutions n'a fonctionné pour moi. Pour résoudre ce problème, j'ai supprimé tout le contenu du répertoire mentionné (some/path/to/specification /), puis j'ai installé les gems dont j'ai besoin (en fait, Bundler puis bundle install).

46
Romain Tribes

En plus de courir gem update --system J'ai utilisé gem install <gem with bad gemspec> sur chacun des objets gem env signalés comme mauvais. Cela a nettoyé les erreurs sur ma machine.

12
TheArtTrooper

Comme Michael l'a dit dans le commentaire:

gem pristine --all
10
wingfire

Avait le même problème en essayant d'installer un GEM sur Ubuntu 11.10.

Invalid gemspec in [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: invalid date format in specification: "2011-12-28 00:00:00.000000000Z"

Les options ci-dessus ne fonctionnaient pas pour moi. gem env a rapporté ce qui suit:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.7.2
  - Ruby VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]

J'ai donc supposé que ce problème était dû au fait que j'avais besoin d'une version plus récente de RubyGems.

Emission gem update --system _ vous avez édité l’avertissement suivant:

ERROR:  gem update --system is disabled on Debian, because it will overwrite the content of the rubygems Debian package, and might break your Debian system in subtle ways. The Debian-supported way to update rubygems is through apt-get, using Debian official repositories.
If you really know what you are doing, you can still update rubygems by setting the REALLY_GEM_UPDATE_SYSTEM environment variable, but please remember that this is completely unsupported by Debian.

Cependant, j'ai finalement pu mettre à jour rubygems vers 1.8.15 en émettant:

Sudo gem install rubygems-update && update_rubygems

Tout a fonctionné après ça, bonne chance! :)

6
JonnyReeves

Gemspec non valide dans [/var/lib/gems/1.8/specifications/chronic-0.6.4.gemspec]: format de date non valide dans la spécification: "2011-09-09 00: 00: 00.000000000Z"

La solution simple à ce type de problème est de naviguer dans le fichier .. par exemple.

Étape 1. cd /var/lib/gems/1.8/specifications
étape 2. ouvrir le fichier (chronic-0.6.4.gemspec) dans l'éditeur de votre choix ... (gedit chronic-0.6.4.gemspec)
étape 3. remplacez s.date =% q {2011-10-13 00: 00: 00.000000000Z} par s.date =% q {2011-10-13}

À votre santé :)

3
Addicted
cd vendor/bundle/Ruby/1.9.x/specifications
sed -i 's/ 00\:00\:00.000000000Z//g' *
2
Anno2001

J'ai résolu le problème 'spécification de format de date non valide' en modifiant la ligne correspondante dans D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications/tilt-1.3.3.gemspec en mettant s.date = Time.now au lieu de s.date = "2011-08-25 00: 00: 00.000000000Z" Vous pouvez également utiliser les autres fichiers.

2
sanitha

J'ai trop de pierres précieuses pour réparer un par un et essayer les deux update_rubygems et gem pristine --all toujours pas de chance.

Donc j'utilise rvm clear gemset pour supprimer toutes les gemmes avec une gemspec erronée. Execute bundle install pour réinstaller toutes les gemmes et Viola!

2
taiansu

Je viens d'avoir le même problème sur mon Ubuntu après la mise à niveau vers 10.10. Aucun de ce qui précède n'a fonctionné pour moi. Je devais installer le script update_rubygems de http://rubygems.org/pages/download et l'exécuter une fois. Afterwords tout a fonctionné.

2
ZeissS

Les différentes solutions notées dans ces réponses ne fonctionnaient pas pour moi. Ce qui a bien fonctionné a été de réinstaller les versions spécifiques de la gemme en cause. Dans votre cas, cela ressemblerait à:

gem install tilt   -v 1.3.3
gem install execjs -v 1.2.4
gem install temple -v 0.3.3
gem install guard  -v 0.6.3
gem install guard-livereload -v 0.3.1
gem install rack-cache -v 1.0.3

Je pense que gem pristine xxx yyy zzz ou gem pristine --all _ pourrait ne pas sortir toujours (jamais?) vers les dépôts de pierres précieuses alors que gem install xxx -v v.r.m Est-ce que.

Quoi qu'il en soit, réinstaller les versions incriminées des gemmes a fonctionné pour moi, même si c'était fastidieux ...

1
Chris Markle

rvm gemset clear et alors bundle install a travaillé pour moi!

1
Vibhuti

"gem install rubygems-update", "update_rubygems", puis "gem pristine --all" est la combinaison qui a résolu le problème pour moi après qu'aucune des solutions répertoriées précédemment ne fonctionne.

1
Brian Knoblauch

Résolu en exécutant gem update --system puis gem update.

1
David Walsh

Ce n'est pas vraiment une réponse, mais si quelqu'un a envie d'en creuser plus, j'ai trouvé cette spécification gemspec ici: http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html (défilez vers le bas pour date = date () et cliquez pour afficher le source):

@date = case date
when String then
  if %r\A(\d{4})-(\d{2})-(\d{2})\Z/ =~ date then
    Time.utc($1.to_i, $2.to_i, $3.to_i)
  else
    raise(Gem::InvalidSpecificationException,
          "invalid date format in specification: #{date.inspect}")
  end
when Time, Date then
  Time.utc(date.year, date.month, date.day)
else
  TODAY
end

Donc, je suppose que c’est le code qui analyse gemspec, et il semble que le format de date contenu dans les fichiers qui montrent des erreurs ne soit pas conforme à cela.

Ce que j’ai fait, c’est de corriger manuellement les gemspecs incriminés comme suggéré ci-dessus (changer les dates en "aaaa-mm-jj", cela fonctionne pour moi.

Toutes les spécifications de rubygem que j'avais qui avaient ce problème ont aussi une ligne

s.rubygems_version =% q {1.3.5}

Donc, je suppose que ce ne sont que de vieilles pierres précieuses? Et avec quoi% q {...} de toute façon?

0
PapaFreud

Si vous aviez cette erreur sur Ubuntu 11.04, ma solution était les lignes de commande suivantes:

$ Sudo apt-get install Ruby1.9.1

Après cela, vous n'obtiendrez pas l'erreur de date.

0
mazyZed

Dans mon cas, les versions de gem référencées n'étaient même pas installées. J'ai eu ces gemmes, mais pas les versions qui sont gemspecs ont été à l'origine de l'erreur. Donc, je viens de supprimer chacun des fichiers /path/to/specifications/offending-X.Y.ZZ.gemspec.

0
Jon Garvin