我不希望通过Capistrano使用sudo执行任何远程执行的命令.具体来说,当我运行cap deploy:setup时,我会在第一个mkdir命令期间询问我的sudo密码.我在我的deploy.rb文件中添加了set:use_sudo,false,但这并没有什么区别.
我从一个相当完整的deploy.rb文件开始,但是一旦我遇到问题就将其削减.这是我的最小版本仍然显示use_sudo没有被尊重:
# App Definitions set :domain,'[server-ip]' role :app,domain role :web,domain role :db,domain,:primary => true set :user,"my_app" set :use_sudo,false task :sudo_test do run "#{try_sudo} whoami" end
运行上限sudo_test导致我被提示输入我的sudo密码.我在这里想念的是什么(除了我已经拔出的头发)?
谷歌调查结果
https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg
与某人有类似问题的线程.线程中没有结论/解决方案.
解决方法
对于遇到这个问题而且像我这样的傻瓜的其他人.确保你没有引用虚假.我有:
set :use_sudo,"false"
当我把它切换到
set :use_sudo,false
大多数事情都按照我的预期开始工作.正如YWCA Hello指出的那样,仍然存在忽略use_sudo设置的命令.但是,不要忘记正确设置它.