60 votes

Push Heroku rejeté, échec de l'installation des gems via Bundler

J'ai du mal à pousser mon code sur Heroku. Et après avoir cherché sur Google et sur les questions de Stack Overflow, je n'ai pas réussi à trouver la solution. Voici ce que j'obtiens lorsque j'essaie "git push heroku master" :

Heroku receiving push
-----> Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.3
       Unresolved dependencies detected; Installing...
       Fetching source index for http://rubygems.org/
       /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:300:in `open_uri_or_path': bad response Not Found 404 (http://rubygems.org/quick/Marshal.4.8/mail-2.2.6.001.gemspec.rz) (Gem::RemoteFetcher::FetchError)
        from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:172:in `fetch_path'
.
....

Et enfin :

FAILED: http://docs.heroku.com/bundler
 !     Heroku push rejected, failed to install gems via Bundler

error: hooks/pre-receive exited with error code 1
To git@heroku.com:myapp.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:myapp.git'

Merci pour votre aide !

56voto

Jacob Points 1861

Je ne pense pas que ce soit un problème de version de Rails, ni qu'il soit spécifique à Heroku. (J'ai rencontré le même problème aujourd'hui, lors de l'exécution de bundle install sur ma machine de développement locale, avec Rails 3.0.3).

Running bundle update localement, comme Andrew l'a suggéré, résout le problème.

Modifier : Comme suggéré dans les commentaires : n'oubliez pas de git add . , git commit -m "message"

35voto

Dyo Medio Points 11

J'ai le même problème : remote: ! Failed to install gems via Bundler.

si vous voyez que le problème est le suivant :

remote:  Your bundle only supports platforms ["x86_64-darwin-16"] but your local platform
remote:  is x86_64-linux. Add the current platform to the lockfile with `bundle  loc
remote:  --add-platform x86_64-linux` and try again.

Cela signifie ceci :

Your bundle only supports platforms ["x86_64-darwin-16"] but your local platform is x86_64-linux. Add the current platform to the lockfile with `bundle loc --add-platform x86_64-linux` and try again.

Si vous voyez dans votre gemfile.loc vous avez seulement ceci :

PLATFORMS
  x86_64-darwin-16

J'ai donc fait cette commande, pour ajouter votre plateforme dans gemfile.loc.

bundle lock --add-platform x86_64-linux

Cela va mettre à jour votre Gemfile.loc :

PLATFORMS
  x86_64-darwin-16
  x86_64-linux

Continuez :

git add .
git commit -m "add platform x86_64-linux"

Poussez encore

git push heroku master:main

Résolvez !

19voto

Roman Krasavtsev Points 171

J'ai résolu ce problème de cette façon :

  1. mise à jour du forfait
  2. git add Gemfile.lock
  3. git commit -m "Mise à jour de Gemfile.lock pour Heroku".
  4. git push heroku master

8voto

amarimon Points 51
bundle lock --add-platform ruby
bundle lock --add-platform x86_64-linux
bundle install
git add .
git commit -m "Bundler fix"

4voto

Eran Points 11

Utilisez :

rm -rf ~/.bundle/ ~/.gem/ .bundle/ Gemfile.lock

J'avais Gemfile.lock sur mon serveur local assurez-vous de le supprimer du localserver ET aussi de la machine V de HEROKU.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X