Wenn ich einen Edelstein, den ich dank Bundler (Version 1.0.12) gemacht habe, in eine Gemfile einfüge und dann versuche ich einfach so zu bündeln oder zu harken:
$ rake
Ich habe diese Fehlermeldung erhalten:
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"
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/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
Ich sehe wirklich nicht, wie ich dieses Problem lösen kann. Vielen Dank für alle Ideen.
rubygems
bundler
ruby-1.9
ruby-1.9.2
Zag zag ..
quelle
quelle
Antworten:
So behebe ich den Fehler "Ungültiges Datumsformat in Spezifikation":
1.) Wechseln Sie in den Spezifikationsordner unter:
/usr/local/lib/ruby/gems/1.8/specifications/
2.) Suchen Sie die Spezifikation, die das Problem verursacht.
3.) Wechseln Sie
s.date = %q{2011-05-21 00:00:00.000000000Z}
zus.date = %q{2011-05-21}
Das ist ein Gewinn für mich! Viel Glück
quelle
Hier ist der Befehl, um dies für alle Ihre Edelsteine zu beheben:
Es konvertiert
s.date = %q{2011-05-21 00:00:00.000000000Z}
zus.date = %q{2011-05-21}
und sollte Ihr Problem beheben.quelle
git init . && git commit -am "backup
Bitte beachten Sie den Kommentar von Damian Nowak. Diese Befehle bringen möglicherweise Ihre Rubingems durcheinander!
Unter Ubuntu 11.10 wurde dieser Fehler durch Folgendes behoben:
Folgendes kann auf einigen Systemen funktionieren, jedoch nicht auf Debian-Basis:
quelle
Sie können Ihr Upgrade durchführen
gem
. Um dies zu beheben, können Sie diegemspec
Datei direkt bearbeiten - vonzu
Oder rüsten Sie auch Ihre Schienen auf
Es wird das Problem beheben.
quelle
specifications
Verzeichnis sein, das ist meinspecifications
Verzeichnispfad -/home/sayuj/.rvm/gems/ruby-1.9.2-p180/specifications/
Geben Sie nicht die Uhrzeit an, sondern nur das Datum.
2011-04-21
sollte gut funktionieren.quelle
git ls-files
.split ("\ n ") s.test_files =git ls-files -- {test,spec,features}/*
.split (" \ n ") s.require_paths = [" lib "] endHatte das gleiche Problem. Es sieht aus wie ein Fehler in Rubygems. Hier ist das Commit, das 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.
quelle
Dies ist eher ein Kommentar zu Ben Halls Antwort, aber ich habe dieses Privileg noch nicht, wie es scheint
Edelstein-Updates schienen nicht zu funktionieren, ich denke, sie können den Edelstein wegen des schlechten Datumsformats nicht einmal laden. Das manuelle Ändern der Daten war zu frustrierend, um nacheinander zu gehen.
Und für sed:
Und auf eigenes Risiko !! Ich bin immer noch ein Neuling, aber es hat bei mir funktioniert;)
quelle
Auf meinem Slicehost-Server befand sich der Spezifikationsordner an einer anderen Stelle. Hier ist der Weg:
/usr/lib/ruby/gems/1.8/specifications
Der angegebene Fehler sollte den Pfad zum Spezifikationsordner angeben.
quelle
Der Shotgun-Ansatz: Deinstalliere alle Edelsteine und führe den Bundler erneut aus.
gem list --no-version | xargs gem uninstall -aIx
rm -i `rvm gemdir`/specifications/*.gemspec
gem update --system
gem install bundler
bundle install
quelle
.rvmrc
Datei verwenden, führen Sie Zeile 2 vorsichtig aus, da gemdir möglicherweise zusätzliche Ausgaben erzeugt.(Bis die Fehlerbehebung in einer stabilen Version von Rubygems verfügbar ist) Ich habe sie behoben, indem ich dieselbe Version aller Warnungen generierenden Edelsteine mit dem Schalter --version des Befehls gem neu installiert habe.
quelle
Wie Ben Hall sagte, müssen Sie die gemspec-Datei reparieren, die sich von System zu System ändern kann. Um zu wissen, um welche Datei es sich handelt, sehen Sie, welche Datei im Fehlerbericht angegeben ist. Beispiel:
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 s.date Option.
quelle
Hatte dieses Problem jetzt noch. Das Aktualisieren von Rubygems hat es gut gelöst:
quelle
Das ist meine Umgebung:
Ich habe es endlich geschafft, eine Ursache / einen Weg zu finden, um diese Fehler auf meinem System zu verhindern. Ich kehre gerade zu Gurke und Gurkenschienen Version 1.0.2 zurück. Mit den neuesten Versionen wurde dies getan ...
quelle
Auch wenn Sie die neueste Version eines Edelsteins mit einem gültigen Datumsformat installieren, stellen Sie sicher, dass Sie sich
gem cleanup GEMNAME
danachgem
über die Spezifikationen für die älteren Bibliotheken beschweren.quelle
Die Neuinstallation Ihrer Edelsteine kann in vielen dieser leicht unterschiedlichen Maschinenzustände die Lösung sein.
In meinem Fall:
In meinem Fall sind die anderen kreativeren Lösungen fehlgeschlagen.
Mein Problem wurde
Invalid gemspec
beim Versuch, Cocoapods zu verwenden. Ich ranntegem install cocoapods
wieder und alles war rosig.quelle