2012-10-18 45 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'。 –

相关问题