Je travaille avec heroku et chaque fois que j'essaie de pousser mon application, ce message apparaît:
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote:
remote: !
remote: ! You must use Bundler 2 or greater with this lockfile.
remote: !
remote: /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:108:in `warn_for_outdated_bundler_version': You must use Bundler 2 or greater with this lockfile. (Bundler::LockfileError)
remote: from /tmp/d20181109-104-g861yi/bundler-1.15.2/gems/bundler-1.15.2/lib/bundler/lockfile_parser.rb:95:in `initialize'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `new'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:130:in `block in parse_gemfile_lock'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:18:in `block (2 levels) in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:40:in `yield_with_block_depth'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:17:in `block in instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/vendor/Ruby/heroku-18/lib/Ruby/2.5.0/benchmark.rb:308:in `realtime'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/instrument.rb:16:in `instrument'
remote: from /app/tmp/buildpacks/b7af5642714be4eddaa5f35e2b4c36176b839b4abcd9bfe57ee71c358d71152b4fd2cf925c5b6e6816adee359c4f0f966b663a7f8649b0729509d510091abc07/lib/language_pack/helpers/bundler_wrapper.rb:86:in `instrument'
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to my-proyect-1234.
remote:
Il dit 'à distance:! Vous devez utiliser Bundler 2 ou supérieur avec ce fichier de verrouillage. '
Mais ma version de Bundler est 2.0.0.pre.1
Je ne sais pas quoi faire, j'ai essayé de désinstaller bundle et de l'installer à nouveau, j'ai errased le Gemfile.lock et en tapant bundle
encore
J'ai supprimé le projet et créé un clone git à partir de l'application Heroku. Je ne sais pas si c'est une bonne solution, mais cela a fonctionné pour moi.
Un peu tard pour la soirée, mais je viens de le rencontrer aujourd'hui aussi, et cette solution évite de désinstaller Bundler: il suffit de lancer
heroku buildpacks:set https://github.com/bundler/heroku-buildpack-bundler2
selon la discussion sur la question de Bundler ici .
J'ai eu le même problème sur Local Machine (Development) as-
Vous devez utiliser Bundler 2 ou supérieur avec ce fichier de verrouillage.
Le problème était avec gemfile.lock parce que la version de mon lot local et la version de mon lot de projets ne correspondaient pas! Voici la solution
bundle install
J'ai eu une expérience similaire.
voici comment je l'ai résol
Affichez une liste de toutes vos gemmes locales pour la gemme de groupement.
gem list bundler
N/B: La commande ci-dessus est pour le gestionnaire de versions de rbenv, celle de rvm peut être différente
Cela affichera les versions de la gem de bundler installée localement
bundler (2.0.2, default: 1.17.2)
si vous ne possédez pas la version 2 de bundler installée localement, exécutez
gem install bundler
OR
gem install bundler -v 2.0.2
si la version 2 de bundler est déjà installée localement ou vient de l’être, il vous suffit d’installer une mise à jour pour RubyGems Package Manager localement. Pour ce faire, lancez
gem update --system
Et puis enfin courir
bundler update --bundler
C'est tout.
J'espère que cela aide.
Oui, donc généralement désinstaller votre version de bundler, retirer le gemfile.lock, et enfin exécuter gem install bundler -v 1.15.2
(qui est la version utilisée par heroku) a fonctionné.
Après cela, exécuter git Push heroku master
a fonctionné!
J'ai résolu ce problème en exécutant gem uninstall bundler
pour supprimer 2.0.0.pre.1, en renommant le fichier Gemfile.lock (pour le retirer de l'utilisation), puis en exécutant bundle install
pour réinstaller les fichiers gem. Dans mon cas, j’avais déjà accès à la version précédente de bundler installée par heroku (ainsi, lorsque j’exécutais gem uninstall
, toutes les versions disponibles m’étaient affichées et j’avais choisi de supprimer la version 2.0.0.pre.1).
Même avec le bundler 2 sur le système, cette erreur survient toujours lors du déploiement d'une application avec Ruby 2.6 car Ruby 2.6 est livré avec une version par défaut de bundler.
Si vous utilisez Ruby 2.6, effectuez une mise à niveau vers Ruby 2.6.1 pour éviter ce problème.
Heroku n'utilise pas Bundler 2.0, mais 1.15.2, comme l'indique le tracelog.
Pour autant que je sache, la "solution de contournement" consiste à créer votre propre buildpack, ou un simple fork avec le leur:
Ouvrez lib/language_pack/Ruby.rb dans votre éditeur et modifiez la ligne suivante:
BUNDLER_VERSION = "1.11.2"
(README.md sur https://github.com/heroku/heroku-buildpack-Ruby )
Mise à jour : À partir de Ruby 2.6.1 et de Bundler 2.0.1, Heroku prend désormais en charge Bundler 2.0.1. https://devcenter.heroku.com/articles/bundler-version#known-upgrade-issues
Ceci est pas le cas de Ruby 2.6.0, car ceci est invoqué à tort à partir de binstubs, comme @Schneems l'a mentionné dans le commentaire. Il a gentiment signalé cela comme un Ruby Bug # 15622
gem install bundler:2.0.0.pre.1
bundle _2.0.0.pre.1_ install
Où "2.0.0.pre.1" correspond à la version à regrouper.
Ne supprimez pas votre Gemfile.lock pour cela, c'est pour une raison .
J'ai eu le même problème dans mon système local, ma version de Ruby était basse en raison de l'erreur survenue. Corrigé en basculant sur les versions mises à jour de Ruby.
J'ai le même problème pour Ruby 2.6.3, rien dans la liste des réponses ne pourrait aider. La seule solution suivante a fonctionné pour moi:
bundle update Rails
Supprimer Gemfile.lock
bundle
Pour les personnes qui n'utilisent pas Heroku :
J'ai tout essayé et je recevais toujours cette erreur. même ce lien ne m'a pas aidé: https://github.com/jekyll/jekyll/issues/746
Donc c'était ma solution:
Poussez votre code sur GitHub. supprimer le dossier du projet, créer un nouveau dossier et extraire votre groupe de codes. bundler update --bundler ne m'aidait pas à la fin et je ne l'utilisais pas.
Encore une chose importante: j’ai mis à jour ma version de Ruby mais j’obtenais cette erreur, car ma version par défaut de RVM était une ancienne version. même lorsque vous utilisez rvm use VERSION_NUMBER -- default
ne vous aidera pas, car dès que vous vous déconnecterez du terminal, la version par défaut deviendra l'ancienne et vous aurez le même problème.
Pour cela, vous pouvez utiliser cette réponse: Comment définir la version par défaut de Ruby avec RVM?
ou simplement désinstaller l'ancienne version de Ruby avec rvm uninstall X.X.X
et installer la nouvelle avec rvm install X.X.X
et la définir par défaut avec rvm use --default X.X.X
.
à votre santé.