12 Stimmen

Wie kann ich diesen Fehler beheben? config.gem: Entpackter gem authlogic-2.1.3 in vendor/gems hat keine Spezifikationsdatei

Ich erhalte diesen Fehler, wenn ich meinen Mongrel-Server starte...

$ script/server --debugger
=> Booting Mongrel
=> Rails 2.3.5 application starting on http://0.0.0.0:3000
config.gem: Unpacked gem authlogic-2.1.3 in vendor/gems has no specification file. Run 'rake gems:refresh_specs' to fix this.
=> Debugger enabled
=> Call with -d to detach
=> Ctrl-C to shutdown server

Wenn ich rake gems:refresh_specs ausführe, wie es vorgeschlagen wird, erhalte ich allerdings einen anderen Fehler:

rake aborted!
undefined method `installed_source_index' for #<Gem::SourceIndex:0x100551a58>

Haben Sie eine Idee, wie man das beheben kann?

22voto

Mike Benner Punkte 236

Ich bin mir nicht sicher, warum es in Authlogic nicht funktioniert, aber ich musste es selbst erstellen.

Versuchen Sie dies in Ihrem Rails-Projekt:

$prompt> cd vendor/gems/authlogic-2.1.3

$prompt> gem Spezifikation authlogic > .specification

4voto

humandoing Punkte 109

Ich will mich hier nur einmischen, weil ich heute das Gleiche erlebt habe, nur mit einem anderen Schmuckstück.

Ich habe hoptoad aktualisiert, um den Notifier als Gem statt als Plugin zu verwenden, und eine der Anweisungen auf der Github-Seite ist, das Gem in vendor/gems zu entpacken.

Ich arbeite mit Mac OS X und habe den Edelstein so entpackt:

$> rake gems:unpack GEM=hoptoad_notifier

Nachdem ich dies getan hatte, erhielt ich die angegebene Fehlermeldung, und der Edelstein wurde nicht wirklich entpackt (er erstellte das Verzeichnis in vendor/gems, entpackte den Edelstein aber nicht wirklich).

Ich löschte das Verzeichnis von vendor/gems und versuchte es erneut als:

$> sudo rake gems:unpack GEM=hoptoad_notifier

Diesmal hat es geklappt, richtig entpackt und ohne Fehler.

3voto

tomtom Punkte 99

Ich glaube, das ist der Grund: http://github.com/binarylogic/authlogic/commit/05e452472616bd60bb81affc75a1cb3d95cf7857

Der Besitzer hat absichtlich den Gitignore auf die .specification Datei gesetzt. Ich vermute, dass Sie diesen speziellen Edelstein einfrieren und ihn in Ihrem Code-Zweig unter vendor/gems/ einreichen und wie erwartet, ignoriert Git diese spezielle Datei auf Anfrage

1voto

Gazza Punkte 2951

Ich musste in vendor/gems/authlogic nachsehen und '.specification' aus der .gitignore-Datei entfernen

Sobald Sie das getan haben, können Sie rake gems:refresh_specs ausführen

Das einzige Problem ist, dass bei der nächsten Aktualisierung dieses Edelsteins die fehlerhafte .gitignore zurückkommt

1voto

Ben Punkte 11

Ich hatte die gleichen Probleme mit dem "unbekannten GEM". Nach langem Herumprobieren fand ich das folgende Rezept:

Zuerst installierte ich den Edelstein mit dem Standard "gem install authlogic", der den Edelstein in /Library/Ruby/Gems/1.8 platzierte.

Innerhalb von RadRails habe ich den Rake-Task "gems:unpack" verwendet, der anscheinend alle für die Anwendung relevanten Edelsteine sammelt und sie wie gewünscht in /vendor/gems ablegt.

Ich habe dann das systemweite Gem deinstalliert, um zu überprüfen, ob es wirklich funktioniert hat: gem uninstall authlogic --install-dir=/Library/Ruby/Gems/1.8

Scheint gut zu funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X