2011-04-03 2 views
9

Ho provato ad utilizzare bundle update per un progetto Rails 3.0.0 Ho creato, in attesa di tutto il contenuto di Gemfile (e anche Gemfile.lock) per riflettere le rotaie 3.0.5 ...Perché "bundle update" non aggiorna Gemfile per utilizzare Rails 3.0.5?

Ma continuano a essere 3.0.0 .. anche se corro bundle update rails, continua a essere 3.0.0

Per curiosità, ho creato un nuovo progetto Rails 3.0.0, quindi eseguo l'aggiornamento del bundle su di esso ... e si dice ancora "usando rails 3.0.0 ", perché? E come rendere l'aggiornamento bundle update a 3.0.5? (Diverso dal modo ovvio per cambiare la Gemfile mano)

(ho anche provato a cambiare sqlite3-ruby al sqlite3 nel Gemfile, perché 3.0.5 sembra utilizzare sqlite3 invece. E rails e sqlite3 sono il solo 2 gemme elencate Gemfile)

risposta

12

Hai già la risposta: modifica la versione della gemma a mano ed esegui bundle update rails.

Sospetto che tu abbia gem 'rails', '3.0.0' nel tuo Gemfile. L'esecuzione di bundle update rails non cambierà la versione se è stata specificata la versione esatta.

Ecco alcune informazioni sui diversi modi di specificare le versioni gemma nel tuo Gemfile.

http://gembundler.com/rationale.html

+0

quindi credo che la tua risposta sia, "3.0.0" in Gemfile significa utilizzare la versione esatta. Se voglio che si aggiorni al più nuovo ogni volta che viene usato 'bundle update', allora usa'> 3.0.0', anche se non so se questo è raccomandato o no, ma sicuramente mantiene il progetto usando i binari più recenti. –

13

Sì probabilmente avete

gem 'rails', '3.0.0' 

cambiamento a

gem 'rails', '~>3.0.0' 

Questo sarà solo aggiornare le versioni minori di rotaie (3.0.5 & 3.0.6 ...) . Oppure si può cambiare a

gem 'rails', '~>3.0' 

se si desidera aggiornare alle rotaie 3.1 ma non 4.0

1

Questo è uno dei risultati superiore alla ricerca di "bundler aggiornamento wont" su Google in modo che sto aggiungendo seguendo come un'altra risposta. Stavo affrontando questo problema in uno dei miei progetti.

In uno dei miei progetti ho avuto un file .bundle/config che aveva seguente riga:

BUNDLE_FROZEN: "1" 

Questo stava causando bundle update <gemname> non avere alcun effetto. Ho rimosso la riga precedente e ha iniziato di nuovo l'aggiornamento.

+0

hai ragione, quella potrebbe essere una delle possibilità. – Aamir