2012-07-24 85 views
43

我知道在使用gem install時,gem將被存儲在/home/username/.rvm/gems/下,在該gemset下安裝gem。打包商在哪裏存儲寶石?

但是,如果我使用Bundler並在Gemfile中指定gem,那麼當我運行bundle install時,那些gem將被存儲在哪裏?如果我已經安裝了使用gem install的gem,如果我運行bundle install,它會使用以前使用gem install安裝的gem嗎?

+17

'bundle show ' – Chowlett 2012-07-24 16:17:03

+0

謝謝,我完全忘了那個命令。 – maru 2012-07-24 16:24:06

回答

40

這取決於。在通常的開發環境中,他們安裝在「正常」安裝gem的位置(通過運行gem install foo),並且bundler不會重新安裝已存在的gem。這個位置取決於rubygems本身的配置。

如果您運行bundle與--deployment選項,則寶石將被安裝在專屬於您的應用程序的位置安裝(你可以通過這個作爲一個單獨的選項,但默認爲供應商/束)

你也可以運行bundle package以存儲您的應用在vendor/cache中使用的所有.gem文件。運行bundle install會將供應商/緩存中的寶石選爲其他位置的寶石。

+0

酷!感謝您加入更多的細節,非常感謝。 – maru 2012-07-24 16:25:52

+0

您也可以將安裝路徑指定爲[bundle install](http://gembundler.com/v1.2/bundle_install.html)的參數:'$ bundle install --path vendor/bundle' – webwurst 2013-02-16 23:19:00

+2

我沒有理解答案,那麼bundle安裝的默認安裝路徑是什麼?如果它用於開發。 – 2014-11-03 19:40:38

2

這裏/usr/local/lib/ruby/gems/2.1.0/gems/和這裏:/usr/local/lib/ruby/gems/2.1.0/bundler/gems/

+1

我想這隻適用於某些操作系統 – 2015-09-17 19:53:34

+2

你知道bundler如何決定哪個目錄下的哪個gem? – 2015-11-13 18:10:08

40

如果你想找出一個特定的寶石存儲在哪裏,你可以運行bundle show <gem-name>。例如:

[email protected]$ bundle show rake 
/var/bundle/ruby/2.1.0/gems/rake-10.4.2 
+0

這是否意味着所有的寶石都安裝在你的紅寶石上? – Jwan622 2016-04-07 22:34:23