2013-12-16 3 views
11

In unseren Schienen 3.2 Gemfile gibt es einige mit der Option :git Zeige installiert Edelsteine ​​auf github, wie zum Repo:Warum enthält der Befehl "gem list" keine Edelsteine, die mit der Option "Bundler's: git" installiert wurden?

gem 'ruote', :git => 'http://github.com/jmettraux/ruote.git' 

Nach bundle install, wir installiert alle Edelsteine ​​zur Liste Typ gem list. gem list jedoch nicht ruote als ein Juwel installiert. In der Tat gibt es keine ruote überhaupt aufgeführt. Wir bemerken, dass das Gleiche auch mit allen Schienen passiert, die mit der Option :git, die auf Repit auf Github zeigt, installiert sind. Warum führt die Edelsteinliste nicht alle Edelsteine ​​auf, die installiert sind? Wie können wir sicherstellen, dass Ruote korrekt installiert ist?

Antwort

18

Nach den Bundler Documentation, Edelsteine ​​aus git Quellen werden nicht in gem list, weil der gem Befehl sie nicht verarbeiten kann, so Bündler die ganze Arbeit selbst zu tun hat. Bündler speichert diese Edelsteine ​​stattdessen an einem eigenen Ort. (Beachten Sie, dass dieser Speicherort nichts mit dem aktuellen Projekt zu tun hat. Er ist standardmäßig ~/.bundler/....)

Sie können sehen, dass es installiert ist, wenn bundle install ohne Fehler abgeschlossen wird. Sie können auch bundle show verwenden, um die Liste der Edelsteine ​​anzuzeigen, die Bundler für Sie eingerichtet hat.

+1

Aber wie können Sie diese Edelsteine ​​verwenden? Ich meine, ein einfaches "Require" kann sie nicht finden. – refaelos

+0

@refaelos Führen Sie Ihre App mit 'bundle exec' aus und dann genügt ein einfaches' require'. –

+0

Danke @Moshe Katz! Mir ist aufgefallen, dass auch ein Bundle/Setup innerhalb der Datei benötigt wird. – refaelos

0

gem list zeigt Ihnen alle Edelsteine ​​auf Ihrem Rechner installiert.

Wenn Sie ein Juwel mit einem anderen Ort als Rubys Edelsteine ​​haben, speichert Bundler diese lokal für das Projekt und nicht systemweit.

+0

'bundler' speichert die Edelsteine ​​nur lokal für das Projekt, wenn Sie '--deployment' verwenden. –

1

gem list ist nicht der richtige Weg, Edelsteine ​​für die App zu zeigen, da es systemweite Edelsteine ​​zeigt.

Um zu überprüfen, welche Edelsteine ​​für diese App und ihre Versionen sind, überprüfen Sie Gemfile.lock. Sie werden dort die genauesten Informationen haben.

Verwandte Themen