88

を使用するgem installと、gem は、gemset がインストールされた /home/username/.rvm/gems/ に保存されることを知っています。

しかし、Bundler を使用して Gemfile で gem を指定した場合、bundle install を実行すると、それらの gem はどこに保存されるのでしょうか? また、 を使用して既に gem をインストールしたgem install場合、 bundle install を実行すると、 を使用してインストールされた以前の gem が使用されgem installますか?

4

5 に答える 5

79

特定の gem が保存されている場所を知りたい場合は、 を実行できますbundle info <gem-name>。例えば:

user@host$ bundle info rake
/var/bundle/ruby/2.1.0/gems/rake-10.4.2

古いバージョンの rake の場合、コマンドは次のようになります。bundle show <gem_name>.

于 2015-09-17T19:55:40.447 に答える
63

場合によります。通常の開発セットアップでは、gem を "通常" ( を実行して) インストールする場合と同じ場所にインストールされgem install foo、バンドラーは既に存在する gem を再インストールしません。この場所は ruby​​gems 自体がどのように構成されているかによって異なります。

オプションを指定して bundle install を実行すると--deployment、gem はアプリ固有の場所にインストールされます (これを別のオプションとして渡すこともできますが、デフォルトは vendor/bundle になります)。

を実行bundle packageして、アプリが使用するすべての .gem ファイルを に保存することもできますvendor/cache。実行bundle installすると、他の場所にある gem よりも vendor/cache にある gem が優先されます。

于 2012-07-24T16:20:51.680 に答える
8

bundle config path宝石が保管されている場所をよく見ます。

于 2020-05-27T23:49:28.423 に答える
4

ここ/usr/local/lib/ruby/gems/2.1.0/gems/とここ: /usr/local/lib/ruby/gems/2.1.0/bundler/gems/.

于 2014-09-27T11:03:16.077 に答える
2

gem もbundle「Gem Path」内のフォルダーにインストールされることに注意してください (参照: bundle env)。これは、たとえば、次の場所からインストールされた gem で発生しgitます。

gem 'my-gem', git: "https://github.com/x/y.git"

これは、カスタム インストールが gem サーバーからのインストールと競合しないようにするためだと思います。

于 2020-01-29T14:14:31.360 に答える