我不希望对我通过 Capistrano 远程执行的任何命令使用 sudo。具体来说,当我运行 cap deploy:setup 时,我在第一个 mkdir 命令期间被要求提供我的 sudo 密码。我将 set :use_sudo, false 添加到我的 deploy.rb 文件中,但这并没有什么区别。

我从一个相当完整的 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

运行 cap sudo_test 会提示我输入 sudo 密码。我在这里缺少什么(除了我已经拔掉的头发)?

Google 调查结果

https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg

与有类似问题的人的线程。线程中没有指出结论/解决方案。

最佳答案

对于遇到这个问题并且像我这样的傻瓜的其他人。确保你没有引用错误。我有:

set :use_sudo, "false"

当我切换到
set :use_sudo, false

大多数事情开始按照我预期的方式工作。正如 YWCA Hello 指出的那样,仍有一些命令会忽略 use_sudo 设置。但是,不要忘记正确设置它。

关于ruby-on-rails-3 - Capistrano 使用 sudo 甚至 "set :use_sudo, false",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10761534/

10-13 06:34