2014-05-24 2 views
14

je reçois la sortie suivante lors du déploiement:méthode non définie run » pour principal: Object

cap aborted! 
NoMethodError: undefined method `run' for main:Object 
config/deploy.rb:37:in `block (2 levels) in <top (required)>' 
/var/lib/gems/1.9.1/gems/capistrano-3.2.1/lib/capistrano/dsl/task_enhancements.rb:12:in `block in after' 
/var/lib/gems/1.9.1/gems/capistrano-3.2.1/lib/capistrano/application.rb:15:in `run' 
/var/lib/gems/1.9.1/gems/capistrano-3.2.1/bin/cap:3:in `<top (required)>' 
Tasks: TOP => deploy:permissions 
(See full trace by running task with --trace) 
The deploy has failed with an error: #<NoMethodError: undefined method `run' for main:Object> 

J'utilise Capistrano Version: 3.2.1 (Rake Version: 10.3.2). Deploy fonctionne très bien, mais je créé un après déploiement tâche de modifier le propriétaire de la version déployée qui a l'air si:

namespace :deploy do 
    task :permissions do 
     run "chown -R :#{fetch(:group)} #{deploy_to} && chmod -R g+s #{deploy_to}" 
    end 
end 

after :deploy, "deploy:permissions" 

vars sont correctement définis (i fixe erreur avant), mais je reçois cette erreur de méthode manquante pour la méthode d'exécution et je ne sais pas pourquoi.

+1

Cela fonctionne maintenant lorsque je spécifie où je veux exécuter le code en appelant 'on'. et je dois aussi remplacer la commande run par la commande execute. – agro

Répondre

18

Votre code utilise la syntaxe 2.x, alors que votre version est 3.x. Dans 3.x, la syntaxe ressemble à ceci:

namespace :deploy do 
    on roles :all do 
    execute :chown, "-R :#{fetch(:group)} #{deploy_to} && chmod -R g+s #{deploy_to}" 
    end 
end 
+0

Je pense que j'ai mélangé quelques how-tos pour différentes versions de la PAC. ça marche maintenant, alors merci! – agro

+0

@Gergo Erdosi: Quelle pourrait être l'équivalent de 'espace de noms: myapp faire tâche: restart_webserver faire # Redémarrez Web Server run "restart apache2 sudo service" final fin après "déploiement", "myapp: restart_webserver"' –

Questions connexes