2013-03-13 87 views
0

我使用的是流浪框:流浪者不會使用rbenv紅寶石版本

https://dl.dropbox.com/u/14292474/vagrantboxes/precise64-ruby-1.9.3-p194.box

它已根據rbenv安裝ruby1.9.3。我想測試一個Rails應用程序和廚師獨奏供應者我有(除其他事項外),此塊:

execute 'install' do 
    action :run 
    command "bundle install --path #{node.app_name.lib_path}/vendor/bundle --binstubs" 
    cwd node.app_name.path 
end 

rbenv是無業遊民用戶下安裝和指示使用1.9.3全球。由於某種原因,當bundler在上運行時運行時,它仍然使用1.8.7,它只能在/ opt/vagrant_ruby中找到。

我怎麼能告訴流浪者我想用rbenv ruby​​來執行所有任務。我需要通過 env選項執行塊嗎?

+0

我得到相同問題,原因是'$ RBENV_ROOT'沒有通過流浪SSH連接添加到'$ PATH'。我嘗試將它添加到'/ etc/profile'中,但沒有得到任何的愛,事實上它終於消滅了流浪者的ssh功能 – tojofo 2013-03-22 03:44:16

回答

0

首先開始得到束的路徑在您的服務器:

$ which bundle 
/opt/rbenv/shims/bundle 

然後,知道在廚師當你包括rbenv菜譜,不斷RBENV_ROOT等於到/ opt/rbenv,修改命令像這樣:

command "#{RBENV_ROOT}/shims/bundle install --path #{node.app_name.lib_path}/vendor/bundle --binstubs" 

因此,您確保在安裝時使用正確版本的軟件包。

你可以做的第二件事是在用戶的〜/ .bashrc之上添加rbenv的路徑(它可以位於/etc/profile.d/rbenv中,但取決於你的安裝)與廚師獨奏

例如,使用如果您使用的是使用「部署」,編輯/home/deployer/.bashrc有對文件的頂部:

#Rbenv path for remote shells 
source /etc/profile.d/rbenv.sh # <--- adapt this to your installation 

# If not running interactively, don't do anything 
[ -z "$PS1" ] && return # <--- remote shell (ssh connection) will stop at this line