2010-06-17 76 views
13

我對Ruby/Rails很新,但是我正在看一下bundler並想知道它是如何工作的。你是否像正常的gem install XYZ一樣安裝了一套完整的寶石,然後使用Gemfile將這些寶石的某個子集用於特定應用程序?或者您是否通常不再安裝寶石,只需將它們包含在Gemfile中,然後執行bundle install將它們全部包含在隨後與您的應用程序一起使用的軟件包中?捆綁機如何工作(一般)?

非常感謝您抽出寶貴時間回答這個問題,我對捆綁器的功能確切地有點困惑。

- MAP

+0

退房http://gembundler.com/如果您還沒有。這是官方的捆綁商網站。 – x1a4 2010-06-17 01:53:30

回答

3

將bundler想象成包管理工具。

bundle help命令:

bundle install#安裝當前的環境對系統

bundle package#鎖,然後緩存所有的寶石爲供應商/緩存

所以bundle install命令將安裝所有的寶石到在Gemfile中列出的系統以及它們的依賴關係。如果以前沒有安裝寶石,它會從gemcutter repo中抓取寶石。 bundle package會將.gem文件緩存到您的應用程序供應商/緩存目錄中。

先不需要運行gem install

+0

我知道我們不應該問在stackoverflow上的後續行動(根據FAQ),但我有一個擴展的問題。我真正想做的是在一臺機器上管理多個rails和ruby版本。那麼,我會使用RVM的gemsets,然後使用bundler作爲我創建的每個RVM gemset的一部分,以便切換gemsets並使用它們的rails版本? – MAP 2010-06-17 15:32:49

+0

我還不確定它是如何工作的 - 它如何確保您運行的是正確版本的寶石,例如,當有多個寶石時? – Toybuilder 2012-05-16 00:58:51

+0

@Toybuilder您可以在Gemfile中指定您的Gem依賴關係。 Bundler完全解析了您的整個Gem依賴關係圖並將其凍結在應用程序的Gemfile.lock中。您可以使用'bundle viz'實際查看圖形。 – 2012-05-17 16:34:00