bundle-cache - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

bundle-cache - Packen Sie Ihre benötigten .gem-Dateien in Ihre Anwendung

ZUSAMMENFASSUNG

bundle cache

alias: package, pack

BESCHREIBUNG

Kopieren Sie alle zum Ausführen der Anwendung erforderlichen .gem-Dateien in das Verzeichnis vendor/cache. Wenn Sie in Zukunft bundle install(1) bundle-install.1.html ausführen, verwenden Sie lieber die Gems im Cache als diejenigen auf rubygems. org.

GIT- UND PATH-GEMS

Der Befehl bundle cache kann neben .gem-Dateien auch :git- und :path-Abhängigkeiten packen. Dies muss explizit über die Option --all aktiviert werden. Nach der Verwendung wird die Option --all gespeichert.

UNTERSTÜTZUNG FÜR MEHRERE PLATTFORMEN

Bei der Verwendung von Gems, die unterschiedliche Pakete für verschiedene Plattformen haben, unterstützt Bundler das Zwischenspeichern von Gems für andere Plattformen, bei denen die Gemfile aufgelöst wurde (d. h. in der Sperrdatei vorhanden ist), in vendor/cache. Dies muss über die Option --all-platforms aktiviert werden. Diese Einstellung wird in Ihrer lokalen Bundler-Konfiguration gespeichert.

FERNABHOLUNG

Standardmäßig, wenn Sie bundle install(1) bundle-install.1.html ausführen, nachdem Sie bundle cache(1) bundle-cache.1.html ausgeführt haben stellt der Bundler weiterhin eine Verbindung zu rubygems.org her, um zu überprüfen, ob für einen der Edelsteine in vendor/cache ein plattformspezifisches Gem vorhanden ist.

Betrachten Sie zum Beispiel diese Gemfile(5):

source "https://rubygems.org"

gem "nokogiri"

Wenn Sie Bundle Cache unter C Ruby ausführen, ruft Bundler die Version von nokogiri für die "Ruby"-Plattform ab. Wenn Sie auf JRuby bereitstellen und Bundle Install ausführen, muss der Bundler prüfen, ob ein „Java“-basiertes Nokogiri vorhanden ist.

Obwohl das nokogiri-Gem für die Ruby-Plattform auf JRuby technisch akzeptabel ist, verfügt es über eine C-Erweiterung, die nicht auf JRuby läuft. Daher stellt der Bundler standardmäßig weiterhin eine Verbindung zu rubygems.org her, um zu prüfen, ob es eine Version eines Ihrer Gems gibt, die spezifischer für Ihre Plattform ist.

Dieses Problem ist auch nicht auf die "Java"-Plattform beschränkt. Ein ähnliches (häufiges) Problem kann bei der Entwicklung unter Windows und der Bereitstellung unter Linux oder sogar bei der Entwicklung unter OSX und der Bereitstellung unter Linux auftreten.

Wenn Sie sicher sind, dass die in vendor/cache gepackten Gems für die Plattform, auf der Sie sich befinden, geeignet sind, können Sie bundle install --local ausführen, um die Suche nach geeigneteren zu überspringen Edelsteine und verwenden Sie diejenigen im vendor/cache.

Eine Möglichkeit, sicherzustellen, dass Sie über die richtigen Plattformversionen aller Ihrer Gems verfügen, besteht darin, den Bundle-Cache auf einem identischen Computer auszuführen und die Gems einzuchecken. Beispielsweise können Sie während Ihres Staging-Prozesses den Bundle-Cache auf einer identischen Staging-Box ausführen und vor der Bereitstellung in der Produktion den Anbieter/Cache einchecken.

Standardmäßig ruft Bundle Cache(1) bundle-cache.1.html die Gems ab und installiert sie auch am Standardspeicherort. Um die Abhängigkeiten in vendor/cache zu packen, ohne sie am lokalen Installationsort zu installieren, können Sie bundle cache --no-install ausführen.

GESCHICHTE

In Bundler 2.1 übernahm cache die Funktionalitäten von package und jetzt sind package und pack Aliase von Cache.