bundle-update - Frissítse drágaköveit a legújabb elérhető verziókra
bundle update *gems [--all] [--group=NAME] [--source=NAME] [--local] [--ruby] [--bundler[=VERSION]] [--full-index] [--jobs=JOBS] [--quiet] [--patch|--minor|--major] [--redownload] [--strict] [--conservative]
Frissítse a megadott drágaköveket (az összes drágakövet, ha a --all jelzőt használja), figyelmen kívül hagyva a Gemfile.lock fájlban megadott, korábban telepített drágaköveket. Általában a bundle install(1) bundle-install.1.html parancsot kell használni, hogy pontosan ugyanazokat a drágaköveket és verziókat telepítse a gépekre.
A frissítési csomag használatával kifejezetten frissítheti egy drágakő verzióját.
Frissítse a Gemfile-ban megadott összes drágakövet.
Csak a megadott csoport gyöngyszemeit frissítse. Például frissítheti a fejlesztői csoport összes gyöngyszemét a frissítési csomag --group development funkcióval. Meghívhatja a csomag frissítési sínek --group test parancsát is, hogy frissítse például a rails gyöngyszemet és a tesztcsoportban található összes drágakövet.
A Gemfile(5)-ben használt :git vagy :path forrás neve. Például a http://github.com/rails/rails.git :git forrása esetén a frissítési csomag --source rails< függvényt hívja meg.
Ne próbálja meg távolról lekérni a drágaköveket, hanem használja a drágakövek gyorsítótárát.
Frissítse a Ruby zárolt verzióját a Ruby jelenlegi verziójára.
Frissítse a bundler zárolt verzióját a meghívott kötegelő verzióra.
Térjen vissza az összes drágakő egyfájlos indexének használatához.
Adja meg a párhuzamosan futtatandó jobok számát. Az alapértelmezett érték az elérhető processzorok száma.
Próbálja újra a sikertelen hálózati vagy git-kérelmeket szám alkalommal.
Csak figyelmeztetéseket és hibákat ad ki.
Kényszerítsd le minden drágakő letöltését.
Inkább csak a következő javításverzióra frissítsen.
Inkább csak a következő kisebb verzióra frissítsen.
Inkább frissítsd a következő fő verzióra (alapértelmezett).
Ne engedje, hogy a legújabb --javítás | --minor | --szak.
Használja a csomagtelepítés konzervatív frissítési viselkedését, és ne engedje meg a közvetett függőségek frissítését.
Ha a csomag frissítés --all parancsot futtatja, a bundler figyelmen kívül hagyja a korábban telepített drágakövet, és újra feloldja az összes függőséget a forrásokban elérhető összes drágakő legújabb verziója alapján.
Tekintsük a következő Gemfile-t (5):
source "https://rubygems.org"
gem "rails", "3.0.0.rc"
gem "nokogiri"Amikor először futtatja a bundle install(1) bundle-install.1.html elemet, a bundler feloldja az összes függőséget, egészen a végéig, és telepíti, amire szüksége van:
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing builder 2.1.2
Installing abstract 1.0.0
Installing rack 1.2.8
Using bundler 1.7.6
Installing rake 10.4.0
Installing polyglot 0.3.5
Installing mime-types 1.25.1
Installing i18n 0.4.2
Installing mini_portile 0.6.1
Installing tzinfo 0.3.42
Installing rack-mount 0.6.14
Installing rack-test 0.5.7
Installing treetop 1.4.15
Installing thor 0.14.6
Installing activesupport 3.0.0.rc
Installing erubis 2.6.6
Installing activemodel 3.0.0.rc
Installing arel 0.4.0
Installing mail 2.2.20
Installing activeresource 3.0.0.rc
Installing actionpack 3.0.0.rc
Installing activerecord 3.0.0.rc
Installing actionmailer 3.0.0.rc
Installing railties 3.0.0.rc
Installing rails 3.0.0.rc
Installing nokogiri 1.6.5
Bundle complete! 2 Gemfile dependencies, 26 gems total.
Use `bundle show [gemname]` to see where a bundled gem is installed.Amint látja, annak ellenére, hogy a Gemfile(5) két gyöngyszeme van, az alkalmazásnak 26 különböző gyöngyszemre van szüksége a futtatáshoz. A Bundler pontosan emlékszik a Gemfile.lock fájlba telepített verziókra. Amikor legközelebb futtatja a bundle install(1) bundle-install.1.html elemet, a bundler kihagyja a függőségi felbontást, és ugyanazokat a drágaköveket telepíti, mint legutóbb.
Miután bejelölte a Gemfile.lock fájlt a verzióvezérlőbe, és egy másik gépen klónozta, a bundle install(1) bundle-install.1.html futtatása továbbra is telepítse a legutóbb telepített drágaköveket. Nem kell attól tartanod, hogy az erubis vagy mail új kiadása megváltoztatja az Ön által használt drágaköveket.
Időnként azonban érdemes frissítenie a használt drágaköveket a legújabb verziókra, amelyek még mindig megegyeznek a Gemfile(5) gyöngyszemeivel.
Ehhez futtassa a bundle update --all parancsot, amely figyelmen kívül hagyja a Gemfile.lock fájlt, és újra feloldja az összes függőséget. Ne feledje, hogy ez a folyamat jelentősen eltérő készletet eredményezhet a 25 drágakőből, az új drágakövek követelményei alapján, amelyeket a gem szerzői a legutóbbi csomagfrissítés --all futtatása óta adtak ki.
Néha frissíteni szeretne egy gyöngyszemet a Gemfile(5) fájlban, és a többi megadott drágakövet a Gemfile.lock verzióhoz zárva kell hagynia.
Például a fenti forgatókönyvben képzelje el, hogy a nokogiri kiadja az 1.4.4 verziót, és azt szeretné frissíteni anélkül, hogy frissítené a Rails-t és annak összes függőségét. Ehhez futtassa a bundle update nokogiri parancsot.
A Bundler frissíteni fogja a nokogirit és annak függőségeit, de békén hagyja a Rails-t és függőségeit.
Előfordul, hogy a Gemfile(5)-ben deklarált több drágakövet ugyanaz a második szintű függőség kielégíti. Vegyük például a thin és a rack-perftools-profiler esetét.
source "https://rubygems.org"
gem "thin"
gem "rack-perftools-profiler"A vékony drágakő a rack >= 1.0-tól, míg a rack-perftools-profiler a rack ~> 1.0-tól függ. Ha futtatja a csomagtelepítést, a következőket kapja:
Fetching source index for https://rubygems.org/
Installing daemons (1.1.0)
Installing eventmachine (0.12.10) with native extensions
Installing open4 (1.0.1)
Installing perftools.rb (0.4.7) with native extensions
Installing rack (1.2.1)
Installing rack-perftools_profiler (0.0.2)
Installing thin (1.2.7) with native extensions
Using bundler (1.0.0.rc.3)Ebben az esetben a két drágakőnek megvannak a saját függőségei, de közös arackük. Ha a csomagfrissítés vékony funkciót futtatja, a bundler frissíti az démonokat, az eventmachine-t és az racket, amelyek a függőségei >vékony, de nem open4 vagy perftools.rb, amelyek a rack-perftools_profiler függőségei. Vegye figyelembe, hogy a csomagfrissítés vékony frissíti az rack elemet, bár ez egyben a rack-perftools_profiler függősége.
Röviden, alapértelmezés szerint, ha frissít egy gyöngyszemet a csomagfrissítés használatával, a kötegelő frissíti az adott drágakő összes függőségét, beleértve azokat is, amelyek egy másik drágakő függőségei is.
A közvetett függőségek frissítésének megakadályozása érdekében az 1.14-es verzió előtt az egyetlen lehetőség a KONZERVATÍV FRISSÍTÉS viselkedés volt a telepítési csomagban(1) bundle-install.1.html:
Ebben a forgatókönyvben a vékony verzió manuális frissítése a Gemfile(5) fájlban, majd a bundle install(1) bundle-install.1.html futtatása csak a frissítést eredményezi. >démonok és eventmachine, de nem rack. További információért tekintse meg a KONZERVATÍV FRISSÍTÉS szakaszt a bundle install(1) bundle-install.1.html fájlban.
Az 1.14-től kezdődően a --conservative beállítás megadása megakadályozza a közvetett függőségek frissítését is.
Az 1.14-es verzió 4 javítási szintű opciót vezetett be, amelyek befolyásolják a gem verziók feloldását. A következő opciók egyike használható: --patch, --minor vagy --major. A ---strict hozzáadható a további befolyásolás érdekében.
Inkább csak a következő javításverzióra frissítsen.
Inkább csak a következő kisebb verzióra frissítsen.
Inkább frissítsd a következő fő verzióra (alapértelmezett).
Ne engedje, hogy a legújabb --javítás | --minor | --szak.
Amikor a Bundler eldönti, hogy milyen verziókat használjon a Gemfile-ban vagy a szülő gems-ben deklarált követelmények teljesítésére, megkeresi az összes elérhető verziót, kiszűri azokat a verziókat, amelyek nem felelnek meg a követelménynek, majd alapértelmezés szerint a legújabbtól a legfrissebbig rendezi őket. legrégebbi, ebben a sorrendben tekintve őket.
A javítási szintű opciók egyikének megadása (pl. --patch) megváltoztatja a megfelelő verziók rendezési sorrendjét, így a Bundler a legújabb --javítást vagy - -minorverzió elérhető más verziók előtt. Ne feledje, hogy a megadott javítási szinteken kívüli verziók szükség esetén továbbra is feloldhatók a megfelelő függőségi gráf megtalálásához.
Például, ha a gem 'foo' zárolva van 1.0.2-ben, és a Gemfile-ben nincs gem követelmény, és az 1.0.3, 1.0.4, 1.1.0, 1.1.1, 2.0.0 verziók mindegyike létezik, az alapértelmezett a preferencia sorrendje alapértelmezés szerint (--fő) a következő lesz: "2.0.0, 1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2".
Ha a --patch opciót használja, a preferencia sorrendje a következőre változik: "1.0.4, 1.0.3, 1.0.2, 1.1.1, 1.1.0, 2.0.0".
Ha a --minor opciót használja, a preferencia sorrendje a következőre változik: "1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2, 2.0.0".
A --strict opció és a javítási szintű opciók bármelyikének kombinálása eltávolítja a javítási szintű opción kívül eső verziókat, így biztosítva, hogy egyetlen gem sem frissül idáig.
Az előző példa folytatásához, ha a --patch és a --strict opciókat is használja, a felbontáshoz elérhető verziók az „1.0.4, 1.0.3, 1.0.2” lesznek. Ha a ---minor és a --strict értéket használja, akkor az "1.1.1, 1.1.0, 1.0.4, 1.0.3, 1.0.2" lesz.
A Gemfile-ban meghatározott drágakő-követelmények továbbra is az első meghatározó tényező az elérhető verziók tekintetében. Ha a Gemfile-ban a foo gemkövetelménye '~> 1.0', az ugyanazt fogja elérni, mint a --minor és --strict opciók megadása.
Tekintettel a következő drágakő specifikációkra:
foo 1.4.3, requires: ~> bar 2.0
foo 1.4.4, requires: ~> bar 2.0
foo 1.4.5, requires: ~> bar 2.1
foo 1.5.0, requires: ~> bar 2.1
foo 1.5.1, requires: ~> bar 3.0
bar with versions 2.0.3, 2.0.4, 2.1.0, 2.1.1, 3.0.0Gemfile:
gem 'foo'Gemfile.lock:
foo (1.4.3)
bar (~> 2.0)
bar (2.0.3)Esetek:
# Command Line Result
------------------------------------------------------------
1 bundle update --patch 'foo 1.4.5', 'bar 2.1.1'
2 bundle update --patch foo 'foo 1.4.5', 'bar 2.1.1'
3 bundle update --minor 'foo 1.5.1', 'bar 3.0.0'
4 bundle update --minor --strict 'foo 1.5.0', 'bar 2.1.1'
5 bundle update --patch --strict 'foo 1.4.4', 'bar 2.0.4'Az 1. esetben a bar 2.1.1-re frissül, kisebb verziónövekedés, mert a foo 1.4.5-től való függőség ezt megkívánta.
A 2. esetben csak a foo-t kérik feloldani, de a bar is mozoghat, mert nem deklarált függőség a Gemfile-ban.
A 3-as esetben a bar egy egész nagyobb kiadással feljebb megy, mert a foo-nál most egy kisebb emelést preferálnak, ha pedig 1.5.1-re megy, akkor 3.0.0 bar-t igényel.
A 4-es esetben a foo-t részesítik előnyben egy kisebb verzióig, de az 1.5.1 nem fog működni, mert a --strict jelző eltávolítja a 3.0.0 sávot, mivel az jelentős növekedés.
Az 5-ös esetben mind a foo, mind a bar minden kisebb-nagyobb növekményt figyelmen kívül hagynak a --strict jelző miatt, így legfeljebb 1.4.4-ig és 2.0.4-ig mozoghatnak.
Általában, ha egy kötegelővel kezelt alkalmazással dolgozik, a következő munkafolyamatot kell használnia:
A Gemfile(5) első létrehozása után futtassa
bundle install
Ellenőrizze a kapott Gemfile.lock fájlt a verzióvezérlőben
git add Gemfile.lock
Amikor egy másik fejlesztői gépen ellenőrzi ezt a tárolót, futtassa
bundle install
Amikor ezt a lerakat egy telepítőgépen tekinti meg, futtassa
bundle install --deployment
Miután megváltoztatta a Gemfile(5) új vagy frissített függőséget, futtassa
bundle install
Ügyeljen arra, hogy ellenőrizze a frissített Gemfile.lock fájlt a verzióvezérlőben
git add Gemfile.lock
Ha a bundle install(1) bundle-install.1.html ütközést jelez, manuálisan frissítse a Gemfile-ben(5) módosított különleges drágaköveket.
bundle update rails thin
Ha szeretné frissíteni az összes drágakövet a lehető legfrissebb verzióra, amely még mindig megegyezik a Gemfile(5) gyöngyszemeivel, futtassa
bundle update --all