2016-05-22 39 views
15

Come posso risolvere il seguente avviso? Ho aggiornato la mia versione ruby ​​alla versione 2.3.1 e la versione da rails alla 4.2.6. Ricevo questo avviso quando spingo la mia app su heroku.Come risolvere l'avviso di bundler di aggiornamento nei binari durante la distribuzione in heroku?

remote:  Cleaning up the bundler cache. 
remote:  Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`. 
remote:  Removing mime-types-data (3.2016.0221) 

ho rimosso il Gemfile.lock e corse bundle install e anche cercato di aggiornare il bundler, ma l'avvertimento non va mai via.

[email protected]:~/workspace/converse (master) $ gem install bundler 
Successfully installed bundler-1.12.4 
1 gem installed 
[email protected]:~/workspace/converse (master) $ 
+1

leggi [questo articolo] (https://devcenter.heroku.com/articles/bundler-version) –

risposta

33

Così lamenta che la versione di Bundler installata su Heroku è precedente alla versione utilizzata per creare il Gemfile.lock sulla vostra macchina dev.

Probabilmente si può semplicemente ignorare l'avviso - nella maggior parte dei casi l'installazione con una versione leggermente più vecchia di bundler di quella utilizzata per creare lo Gemfile.lock va bene.

bundler ha recentemente aggiunto la registrazione della versione di bundler utilizzata nello Gemfile.lock e quindi il successivo avviso, perché in alcuni casi una nuova funzionalità aggiunta a una nuova versione di bundler avrebbe potuto essere utilizzata per creare lo Gemfile.lock, tale che l'installazione con una versione precedente potrebbe non funzionare correttamente. Quindi a volte può essere un problema. Anche se di solito non lo sarà.

It doesn't look like you can get heroku to install with a different version of bundler.

Se si desidera disattivare l'avviso, è possibile scegliere di utilizzare la stessa versione di bundler localmente utilizzata da heroku. È un po 'difficile capire esattamente quale versione di bundler heroku sta usando - sarebbe bello se quella riga di avviso ti dicesse effettivamente le due diverse versioni di bundler coinvolte! Ma non è così.

This heroku support doc suggerisce che heroku utilizza il bundler 1.11.2. (In questo momento, potrebbe cambiare in futuro!). Possiamo vedere dal tuo registro che stai usando 1.12.4. Se si desidera utilizzare 1.11.2 invece, al fine di evitare l'avviso, quindi, rimuovere tutte le versioni di bundler installati sul vostro sistema:

gem uninstall bundler 

quindi installare 1.11.2 specificamente:

gem install bundler -v 1.11.2 

In generale, quando si utilizza Con il comando bundle, verrà utilizzata l'ultima versione installata sul sistema, in modo da assicurarsi di utilizzare sempre 1.11.2, assicurarsi che sia l'ultima versione installata sul sistema e non installarne mai una successiva.

Quindi è necessario rigenerare il tuo Gemfile.lock in modo che si dice che era in bundle con 1.11.2, per non ottenere più l'avviso. Questo è un tipo di dolore, la cosa più semplice da fare potrebbe essere modificare a mano il Gemfile.lock, e poi andare avanti usare sempre solo il bundler 1.11.2.

Per utilizzare bundler 1.11.2 anche se non vuole avere versioni successive di bundler installato sul vostro sistema, allora ogni volta che fate un bundle install o bundle update (per un app che verrà distribuito a Heroku in ogni caso), si potrebbe fare come:

bundle _1.11.2_ install 

ecc.Questo indicherà a rubygems di eseguire il comando di installazione del bundle con la versione bundler 1.11.2, e quindi quella versione verrà registrata nello Gemfile.lock e non verrà visualizzato l'avviso.

Questo è tutto un casino. Molti sviluppatori probabilmente ignorano l'avviso. Normalmente dovrebbe andare bene.

+1

Grazie. LovingRails dovrebbe accettare questa risposta. – Ernesto