调用bundler时Capistrano权限错误

时间:2013-10-25 12:53:19

标签: ruby-on-rails capistrano

我正在尝试使用Capistrano部署Rails应用程序。 git repo正确检出,但正在运行

/usr/bin/env bundle --gemfile /var/www/my-app/releases/20131024150637/Gemfile --path /var/www/shared/bundle --deployment --quiet --binstubs /var/www/my-app/shared/bin --without development test 

Capistrano发出以下错误

/usr/bin/env: bundle: No such file or directory

我有一个用于部署的部署用户。 以root身份运行命令,但作为部署用户,我得到了

Errno::EACCES: Permission denied - /var/www/my-app/shared/bin/rake
An error occurred while installing rake (10.0.4), and Bundler cannot
continue.
Make sure that `gem install rake -v '10.0.4'` succeeds before bundling.
deploy@Ubuntu-1204-precise-64-minimal:~$ Errno::EACCES: Permission denied - /var/www/my-app/shared/bin/rake

似乎问题是bin继承了组所有权的写权限,但rake没有

drwxrwsr-x 2 root   deploy 4096 Oct 25 00:15 bin
-rwxr-xr-x 1 root   deploy 391 Oct 24 23:57 rake

在capistranorb.com教程之后我做了

root@remote $ mkdir ${deploy_to}
root@remote $ chown deploy:deploy ${deploy_to}
root@remote $ umask 0002
root@remote $ chmod g+s ${deploy_to}
root@remote $ mkdir ${deploy_to}/{releases,shared}

因此,在/ var / www / my-app / shared中创建的所有文件都应该是该组可写的。

实际上,在手动设置权限后,似乎还有另一个问题:我现在可以在部署时正确执行bundle命令,但仍然可以获得

cap aborted!
bundle stdout: Nothing written
bundle stderr: Nothing written

没有任何错误消息

我正在使用Rails 3.2.12,ruby 2.0.0和Ubuntu 12.04

0 个答案:

没有答案