Apache2とPassenger(v3.0.9)を使用して複数のアプリケーションを展開します。 App FooはRails 3.0.11アプリで、App BarはRails 3.1.3アプリです。どちらのアプリも、バンドラを使用して依存関係を管理しています。 PassengerとBundlerは、Passengerのドキュメントを理解した上で、各アプリケーションに必要な依存関係をロードするように機能します。 FooはRack 1.2.4に依存し、BarはRack 1.3.5に依存します。Apache2とPassengerを使用してラックの宝石をシャドウします
Barが導入され、バンドルインストールが実行されると(Capistrano経由で)、Rack 1.3.5がインストールされます。そして突然、Fooのは、次の旅客のエラーを取得:
Gem::LoadError - You have already activated rack 1.3.5, but your Gemfile requires rack 1.2.4. Using bundle exec may solve this.
メッセージが役に立つことしようとしているが、私は、バンドルのexecを実行する必要があります正確にどこか分かりません。私はまた、他の場所で推奨されているようにバンドルinstall --path vendor/cacheを実行しようとしましたが、それは役に立たないようです。
私はRack 1.3.5をアンインストールできますが、Barの危険にさらされます。もう一つの解決策は、FooをRails 3.1.xにアップグレードすることですが、ここで何がうまくいかないのか理解したいと思います。これは、今後異なるバージョンのアプリケーションを実行する可能性が高いからです。
config.ruファイルを削除しただけで、アプリがRackアプリではないと思われます。誰もがその解決策についてコメントしていますか? –
私は同じ問題を抱えていますが、この時間の後にはより良い解決策がありますか? –
Kanzeon、私は数ヶ月間この問題を抱えていた組織に関与していません。私たちはconfig.ruファイルを削除するだけで済み、すべて動作するように見えました。私は数日前にMartin Mがソリューションを投稿したのを見ています。私はこれを確認するのに便利な状況ではないので、あなたのために働く場合、彼の解決策をupvoteしてください。 –