wake-up-neo.com

Ungültige Gemspezifikation aufgrund des Datumsformats in der Spezifikation

Wenn ich einen Edelstein, den ich dank Bundler (Version 1.0.12) erstellt habe, in ein Gemfile einbinde und dann versuche ich, ihn einfach so zu bündeln oder zu harken:

$ rake

Ich habe diese Fehlermeldung erhalten:

Invalid gemspec in [/Users/zagzag/.rvm/gems/[email protected]/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"

Ich bin auf dem letzten Mac OS X (10.6.4) mit:

$ Ruby -v
Ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.4.0]

und:

$ gem -v
Invalid gemspec in [/Users/zagzag/.rvm/gems/[email protected]/specifications/myplugin-1.0.0.gemspec]: invalid date format in specification: "2011-04-21 00:00:00.000000000Z"
1.7.2

Ich kann dieses Problem wirklich nicht lösen. Vielen Dank für alle Ideen.

89
Zag zag..

So behebe ich den Fehler "Ungültiges Datumsformat in Spezifikation":

1.) Wechseln Sie in den Ordner mit den technischen Daten unter:

/usr/local/lib/Ruby/gems/1.8/specifications/

2.) Finden Sie die Spezifikation, die das Problem verursacht.

3.) Ändere s.date = %q{2011-05-21 00:00:00.000000000Z} bis s.date = %q{2011-05-21}

Das ist ein Gewinn für mich! Viel Glück

143
ben hall

Hier ist der Befehl, um dies für alle Ihre Edelsteine ​​zu beheben:

Perl -p -i -e 's/ 00:00:00.000000000Z//' ~/gems/specifications/*.gemspec

Es konvertiert s.date = %q{2011-05-21 00:00:00.000000000Z} bis s.date = %q{2011-05-21} und sollte Ihr Problem beheben.

60
Philippe Creux

Bitte beachte den Kommentar von Damian Nowak. Diese Befehle können deine Rubygems durcheinander bringen!

Unter Ubuntu 11.10 wurde dieser Fehler folgendermaßen behoben:

Sudo gem install rubygems-update
Sudo update_rubygems     

Das Folgende funktioniert möglicherweise auf einigen Systemen, jedoch nicht auf Debian-Basis:

Sudo gem update --system
21
Mark

Du kannst dein gem upgraden. Um dies zu beheben, können Sie die gemspecDatei direkt bearbeiten - von

2011-04-21 00:00:00.000000000Z

zu

YYYY-MM-DD

Oder aktualisieren Sie Ihre Rails auch

Sudo gem update Rails

Es wird das Problem beheben.

14
Sayuj

Geben Sie nicht die Uhrzeit an, sondern nur das Datum. 2011-04-21 sollte gut funktionieren.

6
qrush

Hatte das gleiche Problem. Es sieht aus wie ein Fehler in Rubygems. Hier ist der Commit, der das Problem behoben hat: https://github.com/rubygems/rubygems/commit/21cccd55b823848c5e941093a615b0fdd6cd8bc7

Sie müssen rubygems und bundler auf die neuesten Versionen aktualisieren. Wenn Sie danach immer noch Probleme haben, müssen Sie möglicherweise alle Edelsteine ​​entfernen und neu installieren, die Ihnen Probleme bereiten.

4
spd

Dies ist eher ein Kommentar zu Ben Halls Antwort, aber ich habe dieses Privileg noch nicht, wie es scheint

juwelen-Updates schienen nicht zu funktionieren, da ich denke, dass das Juwel aufgrund des schlechten Datumsformats nicht geladen werden kann. Das manuelle Ändern der Daten war zu frustrierend, um nacheinander zu arbeiten.

grep -i *.gemspec -e '.*s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}

Und für sed:

sed -i -e 's/\(.*\)s\.date.*=.*%q{\(....-..-..\) \(.*Z\)}/\1s.date = %q\{\2}/p' ./*.gemspec

Und auf eigene Gefahr !! Ich bin immer noch ein ruhiger Neuling, aber es hat bei mir funktioniert;)

3
pdelanauze

Auf meinem Slicehost-Server befand sich der Spezifikationsordner an einer anderen Stelle. Hier ist der Pfad:

/usr/lib/Ruby/gems/1.8/specifications

Der angegebene Fehler sollte den Pfad zum Spezifikationsordner angeben.

2
ben hall

The shotgun approach: Deinstalliere alle Gems und führe den Bundler erneut aus.

  1. gem list --no-version | xargs gem uninstall -aIx
  2. rm -i `rvm gemdir`/specifications/*.gemspec
  3. gem update --system
  4. gem install bundler
  5. bundle install
2
Jared Beck

Wie Ben Hall sagte, müssen Sie die gemspec-Datei reparieren, die sich von System zu System ändern kann. Um zu wissen, welche Datei angezeigt wird, lesen Sie im Fehlerbericht nach, welche Datei angezeigt wird. Beispiel:

Ungültige Gemspezifikation in [/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec]: Ungültiges Datumsformat in Spezifikation: "2011-12-28 00: 00: 00.000000000Z"

In diesem Beispiel müssen Sie die Datei "/var/lib/gems/1.8/specifications/svn2git-2.1.2.gemspec" bearbeiten und "2011-12-28 00: 00: 00.000000000Z" für "2011-12-28" ändern. in der Option am date.

1
PhoneixS

Hatte dieses Problem jetzt noch. Das Aktualisieren von Rubygems löste das Problem:

gem update --system
1
polarblau

(Bis die Fehlerbehebung in einer stabilen Version von Rubygems eintrifft) Ich habe es gelöst, indem ich die gleiche Version aller warnenden Edelsteine ​​mit dem Schalter --version des Befehls gem neu installiert habe.

1
Pistos

Auch wenn Sie die neueste Version eines Gems mit einem gültigen Datumsformat installieren, stellen Sie sicher, dass Sie gem cleanup GEMNAME danach, da gem sich immer noch über die Spezifikationen für die älteren Bibliotheken beschwert.

0
Daniel Tsadok

Das erneute Installieren Ihrer Edelsteine ​​kann in vielen dieser geringfügig unterschiedlichen Maschinenzustände die Lösung sein.

In meinem Fall:

cd /Library/Ruby/Gems/1.8/specifications &&
Sudo rm -rf *

In meinem Fall sind die anderen kreativeren Lösungen gescheitert.

Mein Problem wurde Invalid gemspec beim Versuch Cocoapods zu verwenden. Ich rannte gem install cocoapods wieder und alles war rosig.

0
james_womack

Das ist meine Umgebung:

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/[email protected]
- Ruby EXECUTABLE: /Users/user/.rvm/rubies/Ruby-1.9.2-p290/bin/Ruby
- EXECUTABLE DIRECTORY: /Users/user/.rvm/gems/[email protected]/bin
- RUBYGEMS PLATFORMS:
  - Ruby
  - x86_64-darwin-11
- GEM PATHS:
   - /Users/user/.rvm/gems/[email protected]
   - /Users/user/.rvm/gems/[email protected]
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
- REMOTE SOURCES:
   - http://rubygems.org/

Ich habe es endlich geschafft, eine Ursache/einen Weg zu finden, um diese Fehler auf meinem System zu verhindern. Ich greife gerade auf Gurke und Gurken-Rails Version 1.0.2 zurück. Mit den neuesten Versionen wurde dies getan ...

0
rchampourlier