我有一个脚本,它正在我的服务器上安装 Ruby/RVM(以及更多),以准备好部署 Rails 项目的环境。该脚本在 ruby 中,并使用 net-ssh 库来完成这项工作。
在安装了 RVM、Ruby 之后,我想创建项目 Gemset:
connection do |conn|
logger("Create RVM environment #{ruby_version}@#{project_name}")
conn.exec!("#{rvmsudo_path} #{rvm_path} gemset create #{project_name}")
end
我在下面创建了我的 gemset,一切都很好:
/usr/local/rvm/gems/ruby-1.9.3-p286@my_project_name
这是我的 rvm/ruby 的 Capistrano 设置:
set :rvm_type, :system
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"")
当我尝试使用 capistrano 进行部署时,我得到:
/usr/local/rvm/environments/ruby-1.9.3-p286@my_project_name:权限被拒绝
该文件夹中实际上缺少环境文件“ruby-1.9.3-p286@my_project_name”。我需要登录服务器并导航到我的项目,以便 .rvmrc 文件触发环境的创建(rvm --create my_project_name)。我想避免这最后一步。你知道如何触发这个环境的创建吗?(我虽然在创建 Gemset 时会创建它)