Ruby on rails capistrano使用sudo运行内部命令

Ruby on rails capistrano使用sudo运行内部命令,ruby-on-rails,capistrano,Ruby On Rails,Capistrano,我们的capistrano设置是:ssh与普通用户连接,但部署到需要sudo权限才能创建文件的位置 我想运行特定的capistrano命令使用sudo运行“cd{configuration[:releases#u path]}&&{decompress(remote#u filename)。join(“”)}&&rm#{remote#u filename}。有没有一种巧妙的方法可以克服它 def distribute! upload(filename, remote_filename)

我们的capistrano设置是:ssh与普通用户连接,但部署到需要sudo权限才能创建文件的位置

我想运行特定的capistrano命令
使用sudo运行“cd{configuration[:releases#u path]}&&{decompress(remote#u filename)。join(“”)}&&rm#{remote#u filename}
。有没有一种巧妙的方法可以克服它

def distribute!
  upload(filename, remote_filename)
  run "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
end
我相信您可以在capistrano内部使用“sudo”功能,例如

def distribute!
  upload(filename, remote_filename)
  sudo "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
end
我相信您可以在capistrano内部使用“sudo”功能,例如

def distribute!
  upload(filename, remote_filename)
  sudo "cd #{configuration[:releases_path]} && #{decompress(remote_filename).join(" ")} && rm #{remote_filename}"
end

下面的解决方法使它起作用

task :self_own_dirs do
  sudo "chown -R #{user} #{releases_path}/.."
end

在“部署:更新代码”、“部署:自拥有目录”之前

以下解决方法使其起作用

task :self_own_dirs do
  sudo "chown -R #{user} #{releases_path}/.."
end

在'deploy:update\u code'、'deploy:self\u own\u dirs'之前

谢谢,我可以覆盖
分发吗方法而不更改代码?(
sudo cd
dosent work)。谢谢,我可以覆盖
分发吗方法而不更改代码?(
sudo cd
dosent work)。