web-dev-qa-db-fra.com

Rails 4, Capistrano 3.0.0, ne peut pas charger un tel fichier - deploy

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
44
markhorrocks

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

19
pastullo

Je devais gem désinstaller capistrano et sélectionné version 3.0.0

(c'est-à-dire déclassé la gemme à 2.x)

39
markhorrocks

Assurez-vous que vous utilisez bundle exec (vous avez probablement plusieurs versions de gem de capistrano)

c'est à dire.

bundle exec cap -T

18
stebooks

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.

8
H6.

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.

4
reto

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.

2
user1130176

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

2
Meli

J'ai utilisé 

bundle exec cap production deploy

au lieu de cap production deploy

0
Alexander Gorg

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
0
Alupotha