Ich erhalte den folgenden Fehler, wenn ich versuche, Edelsteine in Fenstern zu verwenden, und ich bezog mich auch auf diesen Stackoverflow-Beitrag und aktualisierte Rubygems und Rails. Aber nichts konnte das Problem lösen.
Das Folgende ist der vollständige Fehler,
D: \> gem env Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Tilt-1.3.3. gemspec]: ungültiges Datumsformat in Spezifikation: "2011-08-25 00:00:00 . 000000000Z" Ungültige gemspec in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/ gems/1.8/Specifications /execjs-1.2.4.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-08-03 00:00: 00.000000000Z" Ungültig gemspec in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /temple-0.3.3.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-08-26 00: 00: 00.000000000Z " Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Guard-0.6.3.gemspec ]: ungültiges Datumsformat in Spezifikation: "2011-09-01 00: 00: 0 0.000000000Z" Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems /1.8/specifications[.____.owntown/guard-livereload-0.3.1.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-09 - 01 00: 00: 00.000000000Z " Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Rack-cache-1.0.3.gemspec] : ungültiges Datumsformat in Spezifikation: "2011-08-27 00 : 00: 00.000000000Z" Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8 /specifications[.____.owntown/tilt-1.3.3.gemspec]: Ungültiges Datumsformat in Spezifikation: "2011-08-25 00:00:00 . 000000000Z" Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Execjs-1.2.4.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-08-03 00:00: 00.000000000Z " Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Temple-0.3.3.gemspec]: Ungültiges Datumsformat in Spezifikation: "2011-08-26 00:00: 00.000000000Z" Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/ Spezifikationen /guard-0.6.3.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-09-01 00: 00: 0 0. 000000000Z " Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /Guard-livereload-0.3.1.gemspec]: Ungültiges Datumsformat in Spezifikation: "2011-09 - 01 00: 00: 00.000000000Z" Ungültige Gemspezifikation in [D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications /rack-cache-1.0.3.gemspec]: ungültiges Datumsformat in Spezifikation: "2011-08-27 00 : 00: 00.000000000Z" RubyGems-Umgebung: - RUBYGEMS-VERSION: 1.7.2 - Ruby VERSION: 1.8.7 (2011-06-30 Patchlevel 352) [i386-mingw32] - INSTALLATION VERZEICHNIS: D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8 - Ruby EXECUTABLE: D: /RailsInstaller/Ruby1.8.7/bin/Ruby.exe - AUSFÜHRBARES VERZEICHNIS: D: /RailsInstaller/Ruby1.8.7/bin - RUBYGEMS-PLATTFORMEN: - 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 - GEM-KONFIGURATION: -: update_sources => true -: verbose => true -: benchmark => false -: backtrace => false -: bulk_threshold => 1000 - FERNQUELLEN: - http://rubygems.org/
Ich habe dieses Problem durch pgrade meines RubyGems auf 1.8.1 mit behoben
gem update --system
Edit: Du kannst es auch versuchen (wie von ZeissS vorgeschlagen)
gem install rubygems-update
update_rubygems
Die ultimative Lösung ist:
Suchen Sie nach "spec" -Dateien in Ihrem Ruby= Verzeichnis: * C:\Ruby187\lib\Ruby\gems\1.8\Specifications *
Wenn eine Gemspec-Datei etwa Folgendes enthält: s.date =% q {2011-10-13 : 00: 00.000000000Z} Löschen Sie dann : 00: 00.000000000Z = Teil: am Datum =% q {13.10.2011}
Nach dem Speichern dieser gemspec-Dateien ist das Problem behoben.
Keine dieser Lösungen hat bei mir funktioniert. Um das Problem zu beheben, entfernte ich den gesamten Inhalt des genannten Verzeichnisses (einige/path/to/species /) und installierte dann die Juwelen, die ich brauchte (eigentlich Bundler, dann Bundle-Installation).
Zusätzlich zum Ausführen von gem update --system
Ich benutzte gem install <gem with bad gemspec>
für jeden Gegenstand, den gem env als schlecht gemeldet hat. Dadurch wurden die Fehler auf meinem Computer behoben.
Wie Michael im Kommentar sagte:
gem pristine --all
Hatte das gleiche Problem beim Versuch, ein GEM auf Ubuntu 11.10 zu installieren.
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"
Die oben genannten Optionen haben bei mir nicht funktioniert. gem env
berichtete über Folgendes:
RubyGems Environment:
- RUBYGEMS VERSION: 1.7.2
- Ruby VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
Daher nahm ich an, dass dieses Problem darauf zurückzuführen ist, dass ich eine neuere Version von RubyGems benötigte.
Ausgabe gem update --system
gab folgende Warnung aus:
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.
Es war mir jedoch endlich möglich, rubygems
auf 1.8.15 zu aktualisieren, indem ich Folgendes ausgab:
Sudo gem install rubygems-update && update_rubygems
Danach hat alles geklappt, viel Glück! :)
Ungültige Gemspezifikation in [/var/lib/gems/1.8/specifications/chronic-0.6.4.gemspec]: Ungültiges Datumsformat in Spezifikation: "2011-09-09 00: 00: 00.000000000Z"
Die einfache Lösung für ein solches Problem besteht darin, zur Datei zu navigieren.
Schritt 1. cd /var/lib/gems/1.8/specifications
Schritt 2. Öffnen Sie die Datei (chronic-0.6.4.gemspec) im Editor Ihrer Wahl ... (gedit chronic-0.6.4.gemspec)
Schritt 3. Ändern Sie das Datum ab =% q {2011-10-13 00: 00: 00.000000000Z} in Datum ab =% q {2011-10-13}.
Prost :)
cd vendor/bundle/Ruby/1.9.x/specifications
sed -i 's/ 00\:00\:00.000000000Z//g' *
Ich habe dieses Problem durch Ändern der entsprechenden Zeile in D: /RailsInstaller/Ruby1.8.7/lib/Ruby/gems/1.8/specifications/tilt-1.3.3.gemspec durch Setzen von s.date = behoben Time.now statt am date = "2011-08-25 00: 00: 00.000000000Z" Das gleiche kann auch die anderen Dateien verwenden.
Ich habe zu viele Edelsteine, um einen nach dem anderen zu reparieren, und versuche sowohl update_rubygems
Als auch gem pristine --all
Immer noch ohne Glück.
Also benutze ich rvm clear gemset
, Um alle Edelsteine mit falscher Edelsteinspezifikation zu entfernen. Führen Sie bundle install
Aus, um alle Edelsteine neu zu installieren, und Viola!
Ich hatte gerade das gleiche Problem auf meinem Ubuntu nach dem Upgrade auf 10.10. Keines der oben genannten hat bei mir funktioniert. Ich musste das update_rubygems-Skript von http://rubygems.org/pages/download installieren und einmal ausführen. Afterwords hat alles geklappt.
Die verschiedenen Lösungen in diesen Antworten haben bei mir nicht funktioniert. Was funktionierte, war die Neuinstallation der spezifischen Versionen der fehlerhaften Edelsteine. In Ihrem Fall würde das so aussehen:
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
Ich denke, dass gem pristine xxx yyy zzz
oder gem pristine --all
wird möglicherweise nicht immer (jemals?) in die Edelstein-Repositories gehen, während gem install xxx -v v.r.m
tut.
Wie auch immer, das erneute Installieren der fehlerhaften Versionen der Edelsteine hat bei mir funktioniert, obwohl es mühsam war ...
rvm gemset clear
und dann bundle install
hat für mich gearbeitet!
"gem install rubygems-update", "update_rubygems", dann "gem pristine --all" ist die Kombination, die das Problem für mich gelöst hat, nachdem keines der zuvor aufgelisteten Probleme funktioniert hat.
Gelöst durch Ausführen von gem update --system
dann gem update
.
Dies ist keine wirkliche Antwort, aber wenn jemand mehr graben möchte, habe ich diese gemspec-Spezifikation hier gefunden: http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html (scrollen Sie nach unten zu Datum = Datum () und klicken, um Quelle anzuzeigen):
@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
Ich denke, dies ist der Code, der diese gemspec analysiert, und es sieht einfach so aus, als ob das Datumsformat in den Dateien, die Fehler anzeigen, nicht mit diesem übereinstimmt.
Was ich getan habe, war, diese störenden Gemspecs wie oben vorgeschlagen manuell zu korrigieren (Ändern der Daten in "JJJJ-MM-TT", funktioniert bei mir.
Alle Rubygem-Spezifikationen, die ich hatte, die dieses Problem hatten, haben auch eine Linie
s.rubygems_version =% q {1.3.5}
Also denke ich, das sind nur alte Juwelen? Und was ist überhaupt mit diesen% q {...}?
Wenn Sie diesen Fehler unter Ubuntu 11.04 hatten, lautete meine Lösung wie folgt:
$ Sudo apt-get install Ruby1.9.1
Danach wird der Datumsfehler nicht mehr angezeigt.
In meinem Fall wurden die referenzierten Gem-Versionen nicht einmal installiert. Ich hatte diese Edelsteine, aber nicht die Versionen, deren Edelsteinspezifikationen den Fehler verursachten. Also habe ich gerade jede der /path/to/specifications/offending-X.Y.ZZ.gemspec-Dateien gelöscht.