混乱は、バンドラーが解決している問題から来ています。
システム全体のgemリポジトリにGemsをインストールすると、いくつかのアプリを入手すると、gemの複数のバージョンが作成されます。
したがって、たとえば、3つのRailsバージョン(3.2.8、3.2.6、および3.1.0)になる可能性があります。
require rails
Rubygemsを実行すると、これらのバージョンのいずれかを使用でき、最初に3.1.0に対してビルドされたアプリが、3.2.8の一部の変更と互換性がない場合、混乱を招くことになります。
bundlerが行うことは、Gemfile.lockで指定されているgemを正確にインストールし、そのアプリを使用できるようにそれらをロックすることです。したがって、Bundlerはrubygemsのロードパスを変更して、Gemfile.lock内のGemsのみがアプリで実際に使用できるようにします。
したがってbundle install
、gemをシステム全体のgemディレクトリにインストールするのではなく、プロジェクトごとに異なるパスにインストールします。これが、システム全体ではなく、バンドラーディレクトリにgemが表示される理由です。rack-cache
を介してインストールするgem install
と、にも表示されgem list
ます。