編集: ここでの問題は、ローカル マシンで RVM を使用し、サーバーで rbenv を使用したことです。複数の ruby インストールを管理している (または ruby バージョンをアップグレードしたいがシステムを変更したくない) 場合は、すべての環境で RVM または rbenv のいずれかを使用することを強くお勧めします。 /編集
それでは、少し歴史から始めましょう。私は、Rails2 Web サイトを Rails3 にアップグレードしている最中です。Capistrano の deploy スクリプトを除いて、ほとんどのものは今のところ適切に機能しています。私が持っている現在のセットアップは次のとおりです。
- ローカルにインストールされた RVM (1.14.1)
- ruby-1.9.3-p194 (プロジェクトのフォルダに設定)
- RVM gem としてインストールされた Capistrano v2.12.0 (2.6.0 からアップグレードされましたが、2.6.0 でも動作しません)
- rvm-capistrano (1.2.2)、Gemfile に追加 (オンラインおよび SO でいくつかの読み取りを行った後)
- サーバーにインストールされたrbenv(グローバルに使用されるruby 1.9.3p194を使用)
(今までに、意味をなさないものを見たら、私に知らせてください)
デプロイ スクリプトは何も変更されていませんが、テスト サーバーにデプロイしようとすると ( betaと呼びましょう)、次のエラーが発生します。
* executing `deploy:restart'
* executing "cd /home/foo/bar/current && rake RAILS_ENV=beta queue:restart_workers"
servers: ["208.0..."]
[208.0...] executing command
*** [err :: 208.0...] rake aborted!
*** [err :: 208.0...] no such file to load -- bundler/setup
*** [err :: 208.0...] /home/foo/bar/releases/20120630161947/Rakefile:5
*** [err :: 208.0...] (See full trace by running task with --trace)
** [out :: 208.0...] (in /home/foo/bar/releases/20120630161947)
command finished in 1183ms
failed: "sh -c 'cd /home/foo/bar/current && rake RAILS_ENV=beta queue:restart_workers'" on 208.0...
deploy.rb の関連部分は次のようになります。
task :restart do
run "cd /home/foo/bar/current && rake RAILS_ENV=#{CAP_ENV} queue:restart_workers"
run "cd /home/foo/bar/current && rake RAILS_ENV=#{CAP_ENV} db:migrate"
run "touch #{deploy_to}/current/tmp/restart.txt"
end
言うまでもなくrake RAILS_ENV=beta queue:restart_workers'
、サーバー上で手動で実行すると完全に機能します。また、アプリケーションがデプロイされます (コードは git からコピーされたもので、デプロイが失敗した最後の部分です)。
最後に、rvm-capistrano をインストールして Gemfile に追加する前からエラーは変わらなかったので、rvm に関連しているのかどうかさえわかりません。オンラインで調べただけです。
ありがとう