Je viens de lancer la mise à jour des ensembles et capistrano a été mis à jour vers la version 3.0.0, mais maintenant, lorsque j'exécute cap deploy, j'obtiens une erreur et je ne vois pas comment résoudre ce problème. J'ai mis à jour mon serveur tous les jours sans problème jusqu'à cette mise à jour.
cap aborted!
cannot load such file -- deploy
/home/mark/Rails_apps/myapp/Capfile:1:in `load'
/home/mark/Rails_apps/myapp/Capfile:1:in `<top (required)>'
capfile
load 'deploy'
load 'deploy/assets'
load 'config/deploy' # remove this line to skip loading any of the default tasks
Je devais exécuter gem uninstall capistrano
puis mettez à jour le fichier gem avec gem 'capistrano', '~> 2.15'
puis exécutez à nouveau la version correcte avec bundle update capistrano
Je devais gem désinstaller capistrano et sélectionné version 3.0.0
(c'est-à-dire déclassé la gemme à 2.x)
Assurez-vous que vous utilisez bundle exec (vous avez probablement plusieurs versions de gem de capistrano)
c'est à dire.
bundle exec cap -T
Au lieu de passer à Capistrano 2, utilisez la nouvelle configuration de la version actuelle.
require "capistrano/bundler"
require "capistrano/Rails/assets"
require "capistrano/Rails/migrations"
Voir aussi cet article de Nice , qui résume les différences entre Capistrano 2 et 3.
Ajoutez les gemmes liées à votre Gemfile
c'est-à-dire pour
gem 'capistrano-bundler' # for capistrano/bundler
gem 'capistrano-Rails' # for capistrano/Rails/*
Ne rétrogradez pas à 2.x pour cela.
Le moyen le plus rapide de résoudre ce problème que j'ai trouvé est de sauvegarder les fichiers de limitation (Capfile, config/deploy.rb et config/deploy/* .rb), puis de les re-capifier (ce n'est plus appelé "capify"):
bundle exec cap install STAGES=staging,production
Recréez ensuite vos fichiers de cap à partir de votre sauvegarde. Cela vous prendra 5 minutes pour faire cela et vous serez sur la bosse majeure de mise à niveau Capistrano.
J'ai eu ce problème aujourd'hui et la solution de pastullo ci-dessus l'a corrigé sauf que je devais exécuter gem désinstaller capistrano (comme Markhorrocks a répondu) et non pas désinstaller capistrano.
J'ai aussi trouvé ce blog sur bundler très utile: http://viget.com/extend/bundler-best-practices
Merci de partager cela car cela m'a sauvé beaucoup de temps. X
J'ai utilisé
bundle exec cap production deploy
au lieu de cap production deploy
dans mon cas, j'ai changé ma version du projet Ruby. peut être bundle
également travailler ici.
mais je l'ai changé pour sauvegarder ce qu'il était auparavant.
ex:
rbenv local 2.4.1