web-dev-qa-db-fra.com

Comment résoudre l'avertissement du bundle de mise à jour dans Rails lors du déploiement sur Heroku?

Comment résoudre l'avertissement suivant? J'ai mis à jour ma Ruby version à 2.3.1 et Rails version à 4.2.6. J'obtiens cet avertissement lorsque je pousse mon application sur 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)

J'ai supprimé Gemfile.lock et j'ai exécuté l'installation du bundle et j'ai également essayé de mettre à jour le bundler mais l'avertissement ne disparaît jamais.

suramai@Rails-tutorial:~/workspace/converse (master) $ gem install bundler
Successfully installed bundler-1.12.4
1 gem installed
suramai@Rails-tutorial:~/workspace/converse (master) $
30
LovingRails

Il est donc regrettable que la version de bundler installée sur heroku soit plus ancienne que la version que vous avez utilisée pour créer votre Gemfile.lock sur votre machine de développement.

Vous pouvez probablement ignorer l'avertissement - dans la plupart des cas, l'installation avec une version légèrement plus ancienne de bundler que celle utilisée pour créer le Gemfile.lock est très bien.

bundler a récemment ajouté l'enregistrement de la version de bundler utilisée dans le Gemfile.lock, puis l'avertissement suivant, car dans certains cas, une nouvelle fonctionnalité ajoutée à une nouvelle version de bundler peut avoir été utilisée pour créer le Gemfile.lock, de sorte que l'installation avec une ancienne version peut ne pas fonctionner correctement. Parfois, cela peut être un problème. Bien que ce ne soit généralement pas le cas.

Il ne semble pas que vous puissiez faire installer heroku avec une autre version de bundler .

Si vous souhaitez faire disparaître l'avertissement, vous pouvez plutôt choisir d'utiliser la même version de bundler localement que Heroku utilise. Il est un peu difficile de savoir exactement quelle version de bundler heroku utilise - ce serait bien si cette ligne d'avertissement vous indiquait les deux versions différentes de bundler impliquées! Mais ce n'est pas le cas.

Ce document de support de Herok suggère que Heroku utilise le bundler 1.11.2. (En ce moment, cela pourrait changer à l'avenir!). Nous pouvons voir dans votre journal que vous utilisez 1.12.4. Si vous souhaitez utiliser 1.11.2 à la place, pour éviter l'avertissement, supprimez toutes les versions de bundler installées sur votre système:

 gem uninstall bundler

Installez ensuite 1.11.2 Plus précisément:

 gem install bundler -v 1.11.2

En général, lorsque vous utilisez la commande bundle, elle utilisera la dernière version installée sur votre système, afin de vous assurer que vous utilisez toujours 1.11.2, assurez-vous qu'il s'agit de la dernière version installée sur votre système et n'en installez jamais une plus récente.

Ensuite, vous devez régénérer votre Gemfile.lock tel qu'il indique qu'il a été fourni avec 1.11.2, pour ne plus recevoir l'avertissement. C'est une sorte de douleur, la chose la plus simple à faire pourrait être de modifier le Gemfile.lock à la main, puis en utilisant uniquement le bundler 1.11.2.

Pour utiliser le bundler 1.11.2 même si vous souhaitez que des versions ultérieures de bundler soient installées sur votre système, chaque fois que vous effectuez une bundle install ou bundle update (pour une application qui sera quand même déployée sur heroku), vous pouvez le faire comme:

 bundle _1.11.2_ install

etc. Cela indiquera à rubygems d'exécuter la commande bundle install avec la version bundler 1.11.2, puis cette version sera enregistrée dans le Gemfile.lock, et vous n'obtiendrez pas l'avertissement.

C'est un peu le bordel. De nombreux développeurs ignorent probablement l'avertissement. Cela devrait normalement être bien.

64
jrochkind