0

サーバーの制限により、特定の gem バージョンを実稼働環境にインストールする権限がありません。

開発時に、delayed_job に依存するdelayed_job_active_record (0.3.3) をインストールしました。バンドラーは最新バージョン 3.0.4 を使用します。残念ながら、本番環境では v. 3.0.3 しかインストールされていません。したがって、gemfile.lock を手動で編集しました。現在は本番環境で動作していますが、これは絶対に正しい方法ではないと思います。では、依存する gem のバージョンを指定するにはどうすればよいでしょうか?

4

1 に答える 1

2

依存していることを Gemspec で宣言するだけです"delayed_job", "3.0.3"。Bundler は、可能であれば、すべての要件を満たす一連の依存関係を見つけ出します。delayed_job_active_recordがバージョン 3 以降 (たとえば) に依存し、具体的には 3.0.3 に依存している場合delayed_job、Bundler はバージョン 3.0.3 でこれらの両方の要件を満たすのに十分であると判断します。

また、適切なバージョンの gem をアプリケーションにバンドルできる必要があります。Bundler の主なポイントの 1 つは、これを可能にすることです。依存するすべての宝石をアプリケーションに集めるので、ホストにインストールされているものに翻弄されることはありません。を実行すると、すべての gem がディレクトリbundle install --deploymentにコピーされます。詳細については、Bundler を使用したデプロイvendor/bundleに関するドキュメントを参照してください。

于 2012-11-12T17:45:49.453 に答える