Nachdem Sie Ihre Anwendung für eine Weile entwickelt haben, checken Sie die Anwendung zusammen mit dem Snapshot Gemfile und Gemfile.lock ein. Jetzt enthält Ihr Repository eine Aufzeichnung der genauen Versionen aller Edelsteine, die Sie verwendet haben, als Sie das letzte Mal sicher waren, dass die Anwendung funktioniert hat. Denken Sie daran, dass Ihre Gemfile zwar nur drei Edelsteine auflistet (mit unterschiedlichem Versionsgrad), Ihre Anwendung jedoch von Dutzenden von Edelsteinen abhängt, sobald Sie alle impliziten Anforderungen der Edelsteine berücksichtigt haben, von denen Sie abhängig sind.
Dies ist wichtig: Gemfile.lock macht Ihre Anwendung zu einem einzigen Paket aus Ihrem eigenen Code und dem Code eines Drittanbieters, der ausgeführt wurde, als Sie das letzte Mal sicher waren, dass alles funktioniert hat. Die Angabe genauer Versionen des Codes von Drittanbietern, von denen Sie in Ihrer Gemfile abhängig sind, bietet nicht die gleiche Garantie, da Gems normalerweise eine Reihe von Versionen für ihre Abhängigkeiten deklarieren.
Wenn Sie das nächste Mal die Bundle-Installation auf demselben Computer ausführen, stellt Bundler fest, dass bereits alle erforderlichen Abhängigkeiten vorhanden sind, und überspringt den Installationsvorgang.
Überprüfen Sie nicht das .bundle-Verzeichnis oder eine der darin enthaltenen Dateien. Diese Dateien sind für jeden Computer spezifisch und werden verwendet, um die Installationsoptionen zwischen den Ausführungen des Befehls bundle install beizubehalten.
Wenn Sie das Bundle Pack ausgeführt haben, werden die für Ihr Bundle erforderlichen Edelsteine (obwohl nicht die Git-Edelsteine) in den Anbieter / Cache heruntergeladen. Bundler kann ausgeführt werden, ohne eine Verbindung zum Internet (oder zum RubyGems-Server) herzustellen, wenn alle benötigten Edelsteine in diesem Ordner vorhanden und bei Ihrer Quellcodeverwaltung eingecheckt sind. Dies ist ein optionaler Schritt und wird aufgrund der Vergrößerung Ihres Quellcodeverwaltungs-Repositorys nicht empfohlen.