サーバーに Ruby/RVM (およびその他) をインストールして、Rails プロジェクトをデプロイする環境を準備するスクリプトがあります。このスクリプトは ruby にあり、net-ssh lib を使用してジョブを実行します。
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(/.*\//,"")
カピストラーノを使用してデプロイしようとすると、次のようになります。
/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を作成したときに作成されると思いますが)