2012-10-18 44 views
0

我有一個腳本,在我的服務器上安裝Ruby/RVM(以及更多)以準備部署Rails項目的環境。這個腳本是紅寶石,並使用net-ssh lib來完成這項工作。如何通過net-ssh在服務器上創建RVM環境?

已經安裝RVM,紅寶石之後,我想創建項目寶石:

connection do |conn| 
    logger("Create RVM environment #{ruby_version}@#{project_name}") 
    conn.exec!("#{rvmsudo_path} #{rvm_path} gemset create #{project_name}") 
end 

我得到在我的寶石創建的,都好:

在/ usr /本地/ RVM/gems/[email protected]_project_name

這是我Capistrano的設置RVM /紅寶石:

set :rvm_type, :system 
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") 

當我嘗試使用Capistrano的部署,我得到:

/usr/local/rvm/environments/[email protected]_project_name:權限被拒絕

環境文件'[email protected]_project_name'實際上在該文件夾中缺失。我需要登錄到服務器並導航到我的項目,以便.rvmrc文件觸發創建環境(rvm --create my_project_name)。我想避免這最後一步。你知道如何觸發這個環境的創造嗎? (不過,我覺得它會創建它,當我創建了寶石)

回答

0

基本上RVM環境需要加載到能夠遠程腳本它。 https://rvm.io/workflow/scripting/

你可以用淨SSH運行以下命令這樣做:

conn.exec!("source "/usr/local/rvm/scripts/rvm; rvm --create [email protected]_project_name") 

它會在您的環境和相關的寶石。

+0

如果您將RVM作爲用戶安裝(建議使用),請用'$ HOME/.rvm/scripts/rvm'替換'/ usr/local/rvm/scripts/rvm'。 –

相關問題