2014-07-18 39 views
1

我正在使用CentOS。這裏是我的輸出: 系統rvm無法直接撥打

# which rvm 
/usr/local/rvm/bin/rvm 
# rvm [email protected] 
# /usr/local/rvm/bin/rvm [email protected] 
RVM is not a function, selecting rubies with 'rvm use ...' will not work. 

You need to change your terminal emulator preferences to allow login shell. 
Sometimes it is required to use `/bin/bash --login` as the command. 
Please visit https://rvm.io/integration/gnome-terminal/ for a example. 

正如你可以看到,如果我只用rvm一切工作。但是,使用capistrano完整路徑類似以下的命令

[46f28bd9] Command: cd /var/www/app/releases/20140718172057 && /usr/local/rvm/bin/rvm [email protected] do bundle install --binstubs /var/www/app/shared/bin --path /var/www/app/shared/bundle --without development test --deployment --verbose 

所以它只是失敗和所有寶石正在對默認紅寶石,而不是[email protected]

感謝您的任何建議安裝。

+0

也許試試'/ usr/bin/env rvm'? –

+0

你使用登錄shell嗎? https://rvm.io/integration/gnome-terminal – nsave

+0

@NickVeys'/ usr/bin/env rvm'產生與'rvm'和'/ usr/local/rvm/bin/rvm'相同的輸出,但'/ usr/bin/env rvm ruby​​-1.9.3-p392'給我'RVM不是函數'。只有'rvm ruby​​-1.9.3-p392'按預期工作 @保存是我是 –

回答

1

我的假設:

  • 您使用Capistrano的V3
  • 在Capfile
  • 已經列入require 'capistrano/rvm'當你cd到項目目錄中你有什麼樣.ruby-version.ruby-gemset設置RVM你。

你可能想嘗試這樣的事情

within fetch(:current_path) do 
    with rails_env: fetch(:rails_env) do 
     execute :bundle, "install" 
    end 
end 

任務在V3的工作方式是不同的:https://github.com/capistrano/capistrano#tasks

TL;博士:執行(:束:安裝)和執行('捆綁安裝')不具有相同的行爲!