2013-05-11 26 views
47

Potrebbe dirmi, che cosa è la differenza tra:

$Bundle update 

e

$Bundle install 

risposta

65

bundle update e bundle install possono installare tutte le gemme specificate in Gemfile ma mancanti in gemme.

Ma bundle update fa una cosa per l'aggiornamento:

  1. Se le gemme di cui Gemfile non hanno la versione, sarà l'aggiornamento a qualunque ultima.
  2. Se le gemme specificate in Gemfile hanno la versione controllata con ~>, aggiornerà all'ultima alla cifra finale, la versione della patch.

    Ad esempio, se si dispone di un gioiello in Gemfile

    'foo_gem', '~> 2.1.0' 
    

    bundle update verificherà se la versione più recente di 2.1.x è disponibile in cloud. Supponiamo che la tua versione attuale sia 2.1.2 e che cosa c'è di più recente in cloud è 2.1.5, installerà 2.1.5. Ma se 2.2.6 è il più recente, non farà nulla.

migliori prassi a mio parere

  1. aggiungere sempre la versione di gemme critici come rails.

  2. Stick per bundle install (o bundle predefinito su install) nella maggior parte dei casi. Fai solo bundle update quando è veramente necessario e sei completamente preparato per il risultato.

+0

Quindi, come ho capito bene: se ho 'foo_gem', '~> 2.1.0', la differenza principale è: aggiornamento bundle - installa versione 2.1. * (Più recente) e installazione bundle - installa versione 2.1 .0 – matDobek

+3

@ shuffla90, in questo caso, 'bundle install' installerà l'ultima gemma dire 2.1.5 se non si ha questo gioiello. Ma, se hai già questo gioiello alla 2.1.1, 'bundle install' non farà nulla. –

+0

capito, muchos gracias, per il tuo tempo :) – matDobek

5

Bundle Update s gemme specificate (tutte le gemme, se non sono specificati), ignorando le gemme precedentemente installate specificate in Gemfile.lock. In generale, è necessario utilizzare bundle install per installare le stesse gemme e versioni esatte tra le macchine.

+0

E l'installazione di bundle potrebbe consigliare di eseguire l'aggiornamento del pacchetto. per esempio. bundle install potrebbe dire, per una gemma 'Il pacchetto attualmente ha blahgem bloccato a 5.11.1. Prova a eseguire l'aggiornamento del bundle blahgem', (o solo l'aggiornamento del pacchetto). – barlop

Problemi correlati