2010-12-16 10 views
2

Ruby 1.9.2とPassenger 3で新しい環境をセットアップしました。Rails 3アプリはCapistranoと共に配備されています。 RAILS_ENVはステージングに設定されます。Rails 3を搭載した乗客3はベンダーからの宝石をロードしません/

アプリケーションを起動しようとすると、Passengerは見つからない宝石について不平を言う。

bundle --deployment 

を実行すると、RAILS_ROOT /ベンダーに宝石をインストールされますが、エラーを解決しません。

システムガム(たとえば、sudo gem install)として不足している宝石をインストールした場合、エラーは消えますが、今度はGemfileの次のgemが見つからないと報告されます。

私の宝石をシステムにインストールすることでこれを解決することができましたが、ベンダーのディレクトリにインストールすることは効果がありません。私の理解は、バンドル業者の考えは、システムにすべての宝石をインストールしなければならないことを避けることです。私はRAILS_ROOT/.bundle /設定に設定されている

BUNDLE_FROZEN: "1" 
BUNDLE_PATH: vendor/bundle 
BUNDLE_DISABLE_SHARED_GEMS: "1" 

答えて

0

理想的には、宝石はすべてのデプロイを再インストールされ、それらを避けるために、一貫性のある場所に残るはずです。したがって、設定からBUNDLE_PATHを削除してください(デフォルトの場所は~/.bundle)。

私はbundle --deploymentが何であるかわかりません(私はこのドキュメントの言及をドキュメントで見ることができませんでした)。デプロイスクリプトでこのコマンドのようなものを使用します:

after :'deploy:update_code' do 
    run "cd #{release_path} && bundle install --without test cucumber development" 
end 
+1

私は何を提案していますか。私はそれを試してみるが、私は元の質問が残っていると思う:なぜ乗客はベンダー/バンドルで宝石をピックアップしないのだろうか? --deploymentフラグは、Bundlerサイトのhttp://gembundler.com/rationale.html#deploying-your-application – msmithstubbs

+0

に記載されています(奇妙なことに、 'bundle --help')。なぜあなたの問題は乗客にあると思いますか?サーバーにスクリプト/コンソールを読み込もうとしましたか? – Zubin

関連する問題