2011-11-13 4 views
3

Capistranoは私のdeploy.rbにrvmsudoとは動作しません。Capistrano rvmsudo

私は

set :sudo, 'rvmsudo' 
set :sudo_prompt, 'password: ' 

を試してみましたが、その後でコマンドを実行している:

sudo "god -c config/unicorn.god --log-level debug" 

しかしカピストラーノは、パスワードプロンプトに貼り付けます。

この解決方法hereは、sudo "whoami"を使用し、次にrvmsudoを使用すると言いますが、パスワードは5分間覚えていますが、パスワードは記憶されていないためです。

コンテキスト:

desc "Start unicorn" 
    task :start, :except => { :no_release => true } do 
    sudo "god -c config/unicorn.god --log-level debug" 
end 

答えて

3

あなたは

require 'bundler/capistrano' 

をやっていますか?

そのハック、しかし、あなたは試みることができる:

after "deploy:update_code", :do_bundle_install 

task :do_bundle_install do 
    run "cd #{current_release} && rvmsudo bundle install --gemfile #{current_release}/Gemfile --path {path to install}/bundle --without development test cucumber" 
end 
+0

はい、私は 'bundler/capistrano'を要求しています – LanguagesNamedAfterCofee

+0

そして私はこれを(更新された投稿)で使用しているコンテキストのために提案したことを行うことができません – LanguagesNamedAfterCofee

+0

これは誰でも実際に動作しますか? rvmsudoはトリガーされたタスクでさえ私のために働かない – NikoRoberts

1

runコマンド内でsudoを使用してみてください、しかしセットからsudoを呼び出す:

task :do_something do 
    run "#{sudo} root task" 
end 

この方法であなたの心を変更した場合、すべてのタスクを書き直す必要はなく、set :sudoだけを削除してください。

3

はこれを使用してみてください:

task :do_something do 
    run "cd #{latest_release} && rvmsudo -p '#{sudo_prompt}' some_command" 
end 

それは私のために働きました!