2011-12-11 182 views
2

首次部署应用程序与Capistrano,但运行cap部署时出现问题:Rails 3.1.3,Capistrano 2.9.0,RVM 1.8.6上的更新任务和Ubuntu服务器10.10。就我所见,不应该是权限问题。现在一头撞过我的头,感谢任何方向。运行cap部署时的资产管道问题:Rails 3.1.3上的更新

[email protected]:~/Rails/testapp$ cap deploy:update 
    * executing `deploy:update' 
** transaction: start 
    * executing `deploy:update_code' 
    executing locally: "git ls-remote [email protected]_server:~/testapp/ HEAD" 
[email protected]'s password: 
command finished in 8892ms 
    * executing "git clone -q [email protected]_server:~/testapp/   /home/deploy/testapp/releases/20111211183654 && cd /home/deploy/testapp/releases/20111211183654 && git checkout -q -b deploy f473e207b15d73d2fa9aa32ab1dbeec98471153d && (echo f473e207b15d73d2fa9aa32ab1dbeec98471153d > /home/deploy/testapp/releases/20111211183654/REVISION)" 
servers: ["my_server"] 
Password: 
[my_server] executing command 
command finished in 1695ms 
* executing `deploy:finalize_update' 
triggering before callbacks for `deploy:finalize_update' 
* executing `deploy:assets:symlink' 
* executing "rm -rf /home/deploy/testapp/releases/20111211183654/public/assets &&\\\n  mkdir -p /home/deploy/testapp/releases/20111211183654/public &&\\\n  mkdir -p /home/deploy/testapp/shared/assets &&\\\n  ln -s /home/deploy/testapp/shared/assets /home/deploy/testapp/releases/20111211183654/public/assets" 
servers: ["my_server"] 
[my_server] executing command 
command finished in 1117ms 
* executing "chmod -R g+w /home/deploy/testapp/releases/20111211183654" 
servers: ["my_server"] 
[my_server] executing command 
command finished in 614ms 
* executing "rm -rf /home/deploy/testapp/releases/20111211183654/log /home/deploy/testapp/releases/20111211183654/public/system /home/deploy/testapp/releases/20111211183654/tmp/pids &&\\\n  mkdir -p /home/deploy/testapp/releases/20111211183654/public &&\\\n  mkdir -p /home/deploy/testapp/releases/20111211183654/tmp &&\\\n  ln -s /home/deploy/testapp/shared/log /home/deploy/testapp/releases/20111211183654/log &&\\\n  ln -s /home/deploy/testapp/shared/system /home/deploy/testapp/releases/20111211183654/public/system &&\\\n  ln -s /home/deploy/testapp/shared/pids /home/deploy/testapp/releases/20111211183654/tmp/pids" 
servers: ["my_server"] 
[my_server] executing command 
command finished in 1022ms 
* executing "find /home/deploy/testapp/releases/20111211183654/public/images /home/deploy/testapp/releases/20111211183654/public/stylesheets /home/deploy/testapp/releases/20111211183654/pu## Heading ##blic/javascripts -exec touch -t 201112111837.12 {} ';'; true" 
servers: ["my_server"] 
[my_server] executing command 
*** [err :: my_server] find: 
*** [err :: my_server] "/home/deploy/testapp/releases/20111211183654/public/images" 
*** [err :: my_server] : Filen eller katalogen finns inte 
*** [err :: my_server] 
*** [err :: my_server] find: 
*** [err :: my_server] "/home/deploy/testapp/releases/20111211183654/public/stylesheets" 
*** [err :: my_server] : Filen eller katalogen finns inte 
*** [err :: my_server] 
*** [err :: my_server] find: 
*** [err :: my_server] "/home/deploy/testapp/releases/20111211183654/public/javascripts" 
*** [err :: my_server] : Filen eller katalogen finns inte 
*** [err :: my_server] 
command finished in 1024ms 
triggering after callbacks for `deploy:update_code' 
    * executing `deploy:assets:precompile' 
    * executing "cd /home/deploy/testapp/releases/20111211183654 && rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile" 
servers: ["my_server"] 
[my_server] executing command 
*** [err :: my_server] sh: 
*** [err :: my_server] rake: not found 
*** [err :: my_server] 
command finished in 1440ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /home/deploy/testapp/releases/20111211183654; true" 
servers: ["my_server"] 
[my_server] executing command 
command finished in 727ms 
failed: "sh -c 'cd /home/deploy/testapp/releases/20111211183654 && rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'" on my_server 

回答

4

这是对发展框和服务器的不同版本RVM的一个问题,我有而不是set up deploy.rb properly与RVM协同工作。一直在挖掘几个小时认为它是某种bug。好吧。

得到它的工作在deploy.rb使用此:

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) 
require "rvm/capistrano" 
set :rvm_ruby_string, 'ruby-1.9.2-p290' 
set :rvm_type, :user 
0

它找不到耙子二进制。 如果您使用的是RVM,请确保您正在部署的用户位于rvm组中。

或者,最有可能(或与上述结合),您为非交互式shell禁用了.bashrc/bashrc/profile环境。因此它不会加载所有配置(设置PATH等)。

http://lists.apple.com/archives/macos-x-server/2008/Jun/msg00251.html

Debian的(在/ etc/bashrc中):

# System-wide .bashrc file for interactive bash(1) shells. 

# To enable the settings/commands in this file for login shells as well, 
# this file has to be sourced in /etc/profile. 

# If not running interactively, don't do anything 
[ -z "$PS1" ] && return 

...等等。 最后一行是问题所在。它退出非交互式shell的处理bashrc。 在您的系统上寻找类似的东西。

UPDATE:

有被Debian的挤压处理shell脚本的概述: http://www.fam.tuwien.ac.at/~schamane/_/blog:110814_bash_shell_startup_files_in_debian_squeeze

+0

感谢您的回答,你是正确的,但它是一个RVM问题,但.bashrc中正在从.bash_profile中源了。 –