gem install
を使用すると、gemは/home/username/.rvm/gems/の下に格納され、gemがインストールされたgemsetの下に格納されることを知っています。
しかし、Bundlerを使用してGemfileでgemを指定した場合、bundle installを実行すると、それらのgemはどこに保存されますか? gem install
を使用して既にgemをインストールした場合、バンドルインストールを実行すると、gem install
を使用してインストールされた以前のgemを使用しますか?
場合によります。通常の開発セットアップでは、gemを「通常」(gem install foo
を実行することで)インストールするときの場所にインストールされ、Bundlerは既にあるgemを再インストールしません。この場所は、rubygems自体の構成方法によって異なります。
--deployment
オプションを指定してバンドルインストールを実行すると、gemはアプリに固有の場所にインストールされます(これを別のオプションとして渡すことができますが、デフォルトはベンダー/バンドルです)
bundle package
を実行して、アプリがvendor/cache
で使用するすべての.gemファイルを保存することもできます。 bundle install
を実行すると、vendor/cacheのgemが他の場所のgemよりも優先されます。
特定のgemが保存されている場所を知りたい場合は、bundle show <gem-name>
。例えば:
user@Host$ bundle show rake
/var/bundle/Ruby/2.1.0/gems/rake-10.4.2
ここに /usr/local/lib/Ruby/gems/2.1.0/gems/
そしてここ: /usr/local/lib/Ruby/gems/2.1.0/bundler/gems/
。