2010-09-10 10 views
13

Die Dinge in der formellen Dokumentation beschrieben sind ein bisschen kompliziert.Was genau macht Rails 3 Bundler "bundle install --deployment"?

Fügt es nur die folgende Zeile .bundle/config

BUNDLE_PATH: vendor/bundle 

und dann ein bundle install ausführen, und das ist es? (Installieren wird dann installieren Sie alle Edelsteine ​​in vendor/bundle)

Dann, wenn die Anwendung ausgeführt wird, wird nach den Edelsteinen in diesem Pfad in .bundle/config angegebenen suchen, und das ist es?

Update: wenn ich Mercurial (ähnlich Git) Spur von Dateien im Projekt zu halten, dann nach dem bundle install --deployment tun, sind die einzigen Änderungen viele Dateien Verkäufer/Bündel hinzugefügt und 2 Zeilen hinzugefügt .bundle/config:

Antwort

9

bundle install --deployment installiert tatsächlich die Edelsteine ​​lokal in das Verzeichnis vendor/bundle in der Anwendung. Dies spiegelt sich in der Konfigurationsänderung in der Pfadeinstellung wider, die Sie erwähnt haben (BUNDLE_PATH: Vendor/Bundle). Dieser Ansatz wird als "Einfrieren" oder "Heranladen" der Edelsteine ​​bezeichnet und zwingt die Anwendung, die lokal installierten Edelsteine ​​zu verwenden, anstatt die globalen System-Edelsteine, was ein geeigneter Standard für die Bereitstellung ist. Wie in bundler Dokumentation erwähnt.

„In Einsatz, Isolation ist ein wichtiger Standard Zusätzlich der Benutzer die Anwendung bereitstellen kann keine Berechtigung Edelsteine, um das System zu installieren, oder der Webserver nicht hat Erlaubnis zu lesen Sie sie. "