0

サーバーに 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を作成したときに作成されると思いますが)

4

2 に答える 2

0

基本的に、リモートでスクリプトを作成できるようにするには、RVM 環境をロードする必要があります。 https://rvm.io/workflow/scripting/

これを行うには、net-ssh で次のコマンドを実行できます。

conn.exec!("source "/usr/local/rvm/scripts/rvm; rvm --create ruby-1.9.3-p286@my_project_name")

これにより、環境と関連する gemset が作成されます。

于 2012-10-19T11:22:19.817 に答える
0

RVM は、カピストラーノ経由でのインストール、ルビーのインストール、gemset の作成をサポートしています。これを利用する必要があります。

于 2012-10-19T02:43:45.107 に答える