2015-10-20 69 views
0

我有一个Rails应用程序通过Capistrano3与RVM一起部署到Ubuntu。无法在RVM上执行Capistrano上的gem Ubuntu

我想使用眼睛宝石,但不能执行它。它通过Ubuntu上的RVM安装,我可以在Ubuntu上运行它。

namespace :eye do 



    desc 'Load Eye' 


    task :load do 
    on roles(:app) do 

     execute "cd #{current_path} && eye load #{current_path}/lib/tasks/conductor.eye" 
    end 
    end 

end 

我得到的错误是:

bash: eye: command not found 

帽中止!

如果我不捆绑EXEC我得到打捆同样的错误..

如果我通过Capistrano的运行回声$ PATH我得到:

BUG [f84df590] Command: echo $PATH 
DEBUG [f84df590] /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

而在Ubuntu $ PATH是:

/home/cmsapplication/.rvm/gems/ruby-2.1.1/bin:/home/cmsapplication/.rvm/gems/[email protected]/bin:/home/cmsapplication/.rvm/rubies/ruby-2.1.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/cmsapplication/.rvm/bin:/home/cmsapplication/.rvm/bin 

Capfile:

require 'capistrano/setup' 
require 'capistrano/deploy' 

require 'capistrano/rails' 
require 'capistrano/bundler' 
require 'capistrano/rvm' 
require 'capistrano/puma' 
require "whenever/capistrano" 

Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } 
+0

你在'Capfile'中有'require'capistrano/rvm''吗? –

+0

是的,我可以部署得很好,它是Capistrano 3 – Stpn

+0

你可以添加你的Capfile的问题? –

回答

1

请确保您有文件:

〜/ .bash_profile中

[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile 

    source ~/.profile 

    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
    export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 

〜/ .profile文件

if [ -n "$BASH_VERSION" ]; then 
    # include .bashrc if it exists 
    if [ -f "$HOME/.bashrc" ]; then 
    . "$HOME/.bashrc" 
    fi 
fi 

# set PATH so it includes user's private bin if it exists 
if [ -d "$HOME/bin" ] ; then 
    PATH="$HOME/bin:$PATH" 
fi 

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting 

与变革

execute "cd #{current_path} && eye load #{current_path}/lib/tasks/conductor.eye" 

在你的任务线

execute "cd #{current_path} && /bin/bash --login -c 'eye load #{current_path}/lib/tasks/conductor.eye'" 
+0

哎呀不起作用 – Stpn

+0

请尝试将'eye load#{current_path}/lib/tasks/conductor.eye'改为'/ bin/bash - -login -c eye load#{current_path}/lib/tasks/conductor.eye' –

+0

这个工作!谢谢! – Stpn