我在启用了capistrano的项目中有以下deploy.rb
:
# config valid only for Capistrano 3.1
lock '3.1.0'
# Default value for :pty is false
# forward password prompts
set :pty, true
set :use_sudo, false
namespace :setup do
desc 'installs required libraries'
task :libraries do
on roles(:app), in: :sequence do
execute :sudo, 'whoami'
execute :sudo, "apt-get install mplayer"
end
end
end
我可能没有真正理解:use_sudo
和execute :sudo, 'command'
部分的概念,但奇怪的是whoami
返回root,即使:use_sudo
已关闭。
Documentation of v.2也说明了这一点:
set:use_sudo,false。默认情况下,Capistrano将尝试使用sudo执行某些操作(设置服务器,重新启动应用程序等)。如果您在共享主机上,则可能无法使用sudo,或者您可能只是想避免使用sudo。
那么无论如何执行sudo的:use_sudo
标志是什么。
答案 0 :(得分:2)
你在sudo中明确地运行了一个命令:execute :sudo, 'whoami'
,你为什么对使用sudo感到惊讶?
正如您引用的文档中所述,将:use_sudo
选项设置为false将告诉Capistrano在执行某些操作时不使用sudo 。如果你执行sudo whoami
虽然它不会修改你的命令。