Specifica del formato della data non valida in gemspec


111

Ricevo il seguente errore quando provo a utilizzare gemme in Windows e ho anche fatto riferimento a questo post di stackoverflow e ho aggiornato rubygems e rails. Ma niente potrebbe risolvere il problema.

Quello che segue è l'errore completo,

    D: \> gem env
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/tilt-1.3.3.gemspec]: formato della data non valido nella specifica: "2011-08-25 00:00:00
.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/execjs-1.2.4.gemspec]: formato della data non valido nella specifica: "2011-08-03 00:00:
00.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/temple-0.3.3.gemspec]: formato della data non valido nella specifica: "2011-08-26 00:00:
00.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-0.6.3.gemspec]: formato della data non valido nella specifica: "2011-09-01 00: 00: 0
0.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-livereload-0.3.1.gemspec]: formato della data non valido nella specifica: "2011-09
-01 00: 00: 00.000000000Z "
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/rack-cache-1.0.3.gemspec]: formato della data non valido nella specifica: "2011-08-27 00
: 00: 00.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/tilt-1.3.3.gemspec]: formato della data non valido nella specifica: "2011-08-25 00:00:00
.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/execjs-1.2.4.gemspec]: formato della data non valido nella specifica: "2011-08-03 00:00:
00.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/temple-0.3.3.gemspec]: formato della data non valido nella specifica: "2011-08-26 00:00:
00.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-0.6.3.gemspec]: formato della data non valido nella specifica: "2011-09-01 00: 00: 0
0.000000000Z"
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/guard-livereload-0.3.1.gemspec]: formato della data non valido nella specifica: "2011-09
-01 00: 00: 00.000000000Z "
Gemspec non valido in [D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications
/rack-cache-1.0.3.gemspec]: formato della data non valido nella specifica: "2011-08-27 00
: 00: 00.000000000Z"
Ambiente RubyGems:
  - VERSIONE RUBYGEMS: 1.7.2
  - VERSIONE RUBINO: 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]
  - DIRECTORY DI INSTALLAZIONE: D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8
  - RUBY ESEGUIBILE: D: /RailsInstaller/Ruby1.8.7/bin/ruby.exe
  - DIRECTORY ESEGUIBILE: D: /RailsInstaller/Ruby1.8.7/bin
  - PIATTAFORME RUBYGEMS:
    - rubino
    - x86-mingw32
  - PERCORSI GEMME:
     - D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8
     - C: / Documents and Settings / jeygokul / .gem / ruby ​​/ 1.8
  - CONFIGURAZIONE GEM:
     -: update_sources => true
     -: verbose => true
     -: benchmark => false
     -: backtrace => false
     -: bulk_threshold => 1000
  - SORGENTI REMOTE:
     - http://rubygems.org/

Risposte:


45

Ho risolto questo problema aggiornando il mio RubyGems alla 1.8.10 con

gem update --system

Modifica: puoi anche provare (come suggerito da ZeissS)

gem install rubygems-update
update_rubygems

16
Ho 1.8.10 e ricevo ancora questo
DGM

3
Prova a eseguire "gem pristine [gemname]" per le gemme che causano quegli avvisi.
Michael

2
Anche questo non ha funzionato per me, perché il comando "gem update --system" ha causato lo stesso identico problema e "gem pristine" non ha fatto nulla. Ho dovuto seguire la soluzione di @ Romain_Tribes ed eliminare i file gemspec a mano prima di rieseguire un aggiornamento della gemma
Taryn East

4
Questa non è un'opzione molto buona su Ubuntu, specialmente per gli utenti occasionali di Ruby.
Phillip Whelan

2
La risposta di GaborKomaromi sotto (o uno dei ritrovamenti .. nei commenti) funziona. Questo no.
gotofritz

132

La soluzione definitiva è questa:

Cerca i file "spec" nella directory Ruby: * C: \ Ruby187 \ lib \ ruby ​​\ gems \ 1.8 \ specific *

Se un file gemspec contiene qualcosa del genere: s.date =% q {2011-10-13 00: 00: 00.000000000Z } Quindi elimina la parte 00: 00: 00.000000000Z : s.date =% q {2011-10- 13}

Dopo aver salvato quei file gemspec, il problema è risolto.


2
Questo ha funzionato per me (ruby 1.8.7 / win7), le altre soluzioni no
Felix Alcala

3
Ha funzionato come un ciondolo su Ubuntu con rubino 1.8.7, gemma 1.7.2. Grazie!
Dan

9
Questo rimuoverà la stringa dal file delle specifiche: "find. -Type f | xargs perl -pi -e 's / 00: 00: 00 \ .000000000Z //'"
Rainer Blessing

17
trova /var/lib/gems/1.8/specifications -name * .gemspec -type f | xargs perl -pi -e 's / 00: 00: 00 \ .000000000Z //' in Ubuntu
kubek2k

4
sed -i 's/ 00:00:00.000000000Z//g' path_to_gemspecs
Pedro Rolo

46

Nessuna di queste soluzioni ha funzionato per me. Per risolverlo, ho rimosso tutto il contenuto della directory menzionata (alcuni / percorso / a / specifica /) quindi ho installato le gemme di cui avevo bisogno (in realtà, Bundler quindi installazione in bundle).


Questo è semplice, veloce ed efficace. Prova questo prima degli altri.
Tim Scollick

1
L'unica soluzione che ha funzionato anche per me. Ma non sono sicuro che questa sia la soluzione giusta.
Suren

Questo ha funzionato per me. Era in esecuzione gem udpate --system che mi ha portato a questo problema!
Dave Isaacs

12

Oltre a girare gem update --systemho usato gem install <gem with bad gemspec>su ogni oggetto gem env segnalato come cattivo. Questo ha ripulito gli errori sulla mia macchina.


5
Puoi reinstallare con "gem pristine [gemname]" o fare un "gem pristine --all" per reinstallare le gemme dalla cache senza scaricarle nuovamente.
Michael

10

Come ha detto Michael nel commento:

gem pristine --all

6

Ha avuto lo stesso problema durante il tentativo di installare un GEM su 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"

Le opzioni di cui sopra non hanno funzionato per me. gem envha riportato quanto segue:

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

Quindi ho presunto che questo problema fosse dovuto al fatto che richiedevo una versione più recente di RubyGems installata.

Rilascio gem update --systemyeilded il seguente avviso:

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.

Tuttavia sono stato finalmente in grado di aggiornare rubygemsalla 1.8.15 emettendo:

sudo gem install rubygems-update && update_rubygems

Dopo tutto ha funzionato, buona fortuna! :)


Per me su Ubuntu, ci sono voluti sudo apt-get purge rubygemsseguito da sudo apt-get install rubygemse poi ho installato di nuovo tutte le gemme. Imbarazzante, ma almeno ha funzionato: P (quanto sopra non ha funzionato per me)
Jeff Tratner

3

Gemspec non valido in [/var/lib/gems/1.8/specifications/chronic-0.6.4.gemspec]: formato data non valido nella specifica: "2011-09-09 00: 00: 00.000000000Z"

La semplice soluzione a questo tipo di problema è navigare nel file .. per es.

Passaggio 1. cd /var/lib/gems/1.8/specifications
passaggio 2. aprire il file (cronic-0.6.4.gemspec) nell'editor di tua scelta ... (gedit cronic-0.6.4.gemspec)
passaggio 3. cambia s.date =% q {2011-10-13 00: 00: 00.000000000Z} in s.date =% q {2011-10-13}

Saluti :)


2

Ho appena avuto lo stesso problema sul mio Ubuntu dopo l'aggiornamento a 10.10. Nessuno dei precedenti ha funzionato per me. Ho dovuto installare lo script update_rubygems da http://rubygems.org/pages/download ed eseguirlo una volta. Dopo tutto ha funzionato.


2

Ho risolto questo problema "specifica del formato della data non valida" modificando la riga corrispondente in D: /RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/specifications/tilt-1.3.3.gemspec inserendo s.date = Time.now invece di s.date = "2011-08-25 00: 00: 00.000000000Z" Lo stesso può essere utilizzato anche per gli altri file.


2

Ho troppe gemme per aggiustarle una per una e provarle entrambe update_rubygemse gem pristine --allancora senza fortuna.

Quindi uso rvm clear gemsetper rimuovere tutte le gemme con gemspec sbagliato. Esegui bundle installper reinstallare tutte le gemme e Viola!


Unrecognized command line argument: 'clear' ( see: 'rvm usage' )
Jonathan

1
rvm gemset empty your_gemset_name_or_global
taiansu

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

1

Risolto correndo gem update --systemquindi gem update.


ha funzionato per me, ho appena ricevuto quell'errore dopo aver eseguito l'aggiornamento gem --system, la maggior parte di loro è andata via dopo l'aggiornamento gem. per altri ho rimosso il file gemspec.
mrbrdo

1

Le varie soluzioni annotate in queste risposte non hanno funzionato per me. Ciò che ha funzionato è stata reinstallare le versioni specifiche della gemma incriminata. Nel tuo caso sarebbe sembrato:

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

Penso che gem pristine xxx yyy zzzo gem pristine --allpotrebbe non uscire sempre (mai?) Nei repository gem mentre lo gem install xxx -v v.r.mfa.

Ad ogni modo, reinstallare le versioni incriminate delle gemme ha funzionato per me, anche se è stato noioso ...


1

rvm gemset cleare poi ha bundle installlavorato per me!


1

"gem install rubygems-update", "update_rubygems", quindi "gem pristine --all" è la combinazione che ha risolto il problema dopo che nessuno di quelli elencati in precedenza ha funzionato.


0

Nel mio caso, le versioni gem di riferimento non erano nemmeno installate. Avevo quelle gemme, ma non le versioni di gemspecs che stavano causando l'errore. Quindi, ho appena cancellato ciascuno dei file /path/to/specifications/offending-XYZZ.gemspec.


0

Questa non è proprio una risposta, ma se qualcuno ha voglia di scavare di più ho trovato questa specifica gemspec qui: http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html (scorri verso il basso fino a date = date () e fai clic su per mostrare la fonte):

@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

Quindi immagino che questo sia il codice che analizza quel gemspec, e sembra che il formato della data che si trova nei file che mostrano errori non sia conforme a questo.

Quello che ho fatto è stato correggere manualmente quei gemspec offensivi come suggerito sopra (cambiando le date in "yyyy-mm-dd", per me funziona.

Tutte le specifiche di Rubygem che avevo con questo problema hanno anche una linea

s.rubygems_version =% q {1.3.5}

Quindi immagino che queste siano solo vecchie gemme? E comunque con quei% q {...}?


0

Se hai riscontrato questo errore su Ubuntu 11.04, la mia soluzione era la seguente riga di comando:

$ sudo apt-get install ruby1.9.1

Dopo aver fatto questo non riceverai l'errore di data.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.