私が理解しているように、Capistranoが行うことは、サーバーにsshで接続し、必要なコマンドを実行することだけです(ほとんどの場合)。
私は過去数回のプロジェクトでrvmを使用しており、rvm-capistranogemをインストールする必要がありました。そうしないと、リポジトリに適切な.rvmrcファイル(正しいrubyと正しいgemsetが含まれている)があったとしても、実行可能ファイルを見つけることができませんでした(または思い出します)。
同様に、今日はpythonbrewを使用しているプロジェクトのデプロイを設定していましたが、単純な「cd#{deploy_to} / current && pythonbrew venv use myenv && gunicorn_django -c gunicorn.py」で、「実行可能なgunicorn_djangoが見つかりません」。これは、virtualenvが正しくアクティブ化されなかったためだと思います。しかし、「pythonbrew venv use myenv」を実行したときに、環境をアクティブ化しませんでしたか?サーバーにSSHで接続してシェルで実行すると、完全なコマンドは正常に機能しますが、Capistranoを介して実行すると機能しません。
私の質問は、Capistranoがsshを介していくつかのコマンドを実行しているにもかかわらず、rvmやpythonbrewなどのプログラムと一緒に再生するために変更が必要なのはなぜですか?