bundle-cache - Spakuj potrzebne pliki .gem do swojej aplikacji
bundle cache
alias: package, pack
Skopiuj wszystkie pliki .gem potrzebne do uruchomienia aplikacji do katalogu vendor/cache. W przyszłości, podczas uruchamiania bundle install(1) bundle-install.1.html, używaj klejnotów w pamięci podręcznej zamiast tych w rubygems. org.
Polecenie bundle cache może również pakować zależności :git i :path oprócz plików .gem. Należy to wyraźnie włączyć za pomocą opcji --all. Raz użyta opcja --all zostanie zapamiętana.
Podczas korzystania z klejnotów, które mają różne pakiety dla różnych platform, Bundler obsługuje buforowanie klejnotów dla innych platform, na których plik Gemfile został rozwiązany (tj. obecny w pliku blokującym) w vendor/cache. Należy to włączyć za pomocą opcji --all-platforms. To ustawienie zostanie zapamiętane w lokalnej konfiguracji pakietu.
Domyślnie, jeśli uruchomisz bundle install(1) bundle-install.1.html po uruchomieniu bundle cache(1) bundle-cache.1.html, pakiet nadal będzie łączył się z rubygems.org, aby sprawdzić, czy istnieje klejnot specyficzny dla platformy dla któregokolwiek z klejnotów w vendor/cache.
Weźmy na przykład ten plik Gemfile(5):
source "https://rubygems.org"
gem "nokogiri"Jeśli uruchomisz bundle cache w C Ruby, bundler pobierze wersję nokogiri dla platformy „ruby”. Jeśli wdrażasz w JRuby i uruchamiasz bundle install, pakiet jest zmuszony sprawdzić, czy "java" istnieje platforma nokogiri.
Mimo że klejnot nokogiri dla platformy Ruby jest technicznie akceptowalny w JRuby, ma rozszerzenie C, które nie działa w JRuby. W rezultacie program bundler domyślnie nadal będzie łączył się z witryną rubygems.org, aby sprawdzić, czy istnieje wersja jednego z Twoich klejnotów bardziej specyficzna dla Twojej platformy.
Ten problem nie ogranicza się również do platformy "java". Podobny (częsty) problem może wystąpić podczas programowania w systemie Windows i wdrażania w systemie Linux, a nawet podczas opracowywania w systemie OSX i wdrażania w systemie Linux.
Jeśli wiesz na pewno, że klejnoty spakowane w vendor/cache są odpowiednie dla używanej platformy, możesz uruchomić bundle install --local, aby pominąć sprawdzanie bardziej odpowiednich klejnoty i użyj tych w vendor/cache.
Jednym ze sposobów upewnienia się, że masz wersje wszystkich swoich klejnotów na odpowiednią platformę, jest uruchomienie pamięci podręcznej pakietów na identycznej maszynie i sprawdzenie klejnotów. Na przykład możesz uruchomić pamięć podręczną pakietu na identycznym urządzeniu pomostowym podczas procesu pomostowego i sprawdzić dostawcę/pamięć podręczną przed wdrożeniem do produkcji.
Domyślnie bundle cache(1) bundle-cache.1.html pobiera i instaluje klejnoty w domyślnej lokalizacji. Aby spakować zależności do vendor/cache bez instalowania ich w lokalnej lokalizacji instalacji, możesz uruchomić bundle cache --no-install.
W Bundlerze 2.1 cache przejął funkcje package, a teraz package i pack są aliasami pamięć podręczna.