2015-10-20 34 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

相關問題