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 !

4voto

Une autre astuce : Ouvrez votre Gemfile.lock et vérifiez si ce bloc existe :

PLATFORMS
  x86_64-darwin-20

S'il existe, exécutez la commande suivante : bundle config force_ruby_platform true

Maintenant, vous devez recréer l'ensemble du Gemfile.lock, car certaines gemmes peuvent être construites uniquement pour MacOS. Donc, il suffit de supprimer le Gemfile.lock et exécuter bundle install (n'oubliez pas d'arrêter spring, s'il est en cours d'exécution, sinon spring recrée automatiquement le fichier Gemfile.lock)

2voto

Ayush Jain Points 21
  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

ça a marché pour moi.

2voto

Exécuter : bundle lock --add-platform x86_64-linux

  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

1voto

Andrew Points 14110

Je suis presque sûr que Heroku ne supporte que certaines versions de Rails, donc vous devez être au moins sur la version 3.0, au lieu d'une release candidate. Mettez à jour la version de Rails dans votre gemfile, exécutez bundle update et ensuite essayer de pousser vers Heroku.

0voto

stef Points 6478

J'obtiens la même chose - 404 :

curl -v -I http://rubygems.org/quick/Marshal.4.8/mail-2.2.6.001.gemspec.rz

Dans votre Gemfile, vous pourriez essayer de spécifier un numéro de version inférieur de cette gemme ? 2.2.5 peut-être ?

0 votes

Je pense que c'est du côté de Heroku, car mon Gemfile est extrêmement simple : gem 'rails', '3.0.0.rc' gem 'twitter_oauth' gem 'json' gem 'pg'.

0 votes

Y a-t-il une raison pour laquelle vous utilisez une ancienne version de Rails ? Pourquoi ne pas voir si spécifier 3.0.3 fonctionne pour vous ?

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