2016-02-04 58 views
0

我試圖讓capistrano使用chruby但我不斷收到錯誤bundle stderr: /bin/sh: 1: chruby: not found將capistrano執行命令的正確位置是什麼?

我需要運行source /usr/local/share/chruby/chruby.sh,使外殼可以找到命令chruby。

我已經通過this瞭解並瞭解交互/非交互式shell,登錄/非登錄shell。從邏輯上講,我不想使用pty: true,所以我試圖使用$BASH_ENV,但仍然是相同的錯誤。另外,我意識到沒有人這樣做。

回答

0

我在Ubuntu 14.04上使用rbenv,但我想象你的設置可能類似。我的解決辦法是把rbenv外殼初始化邏輯在我的部署用戶的.bashrc最頂端,就像這樣:

if [ -d $HOME/.rbenv ]; then 
    export PATH="$HOME/.rbenv/bin:$PATH" 
    eval "$(rbenv init -)" 
fi 

# If not running interactively, don't do anything 
case $- in 
    *i*) ;; 
     *) return;; 
esac 

# ... snip 

要注意的重要一點是,rbenv代碼甚至非交互shell執行,因爲它放在交互式檢查之前。

那麼你很可能做同樣的事情,在那裏你把chruby腳本頂部:

source /usr/local/share/chruby/chruby.sh 

# If not running interactively, don't do anything 
case $- in 
    *i*) ;; 
     *) return;; 
esac 

我沒有用過chruby,所以藉此與一粒鹽。

相關問題