2011-01-14 82 views
39

我只是不明白。我認爲,Bundler是爲解決gem之間的版本衝突而開發的。所以我只需要require "bundler/setup",一切都很好,知道Bundler將加載我所有的寶石及其依賴項的正確版本。現在,RVM非常適合管理多個Rubies,但我知道,爲什麼我應該關心Gemset功能?我在這裏想念什麼?它可以讓我的發展更容易嗎?也許,你們中的一些人可以給我提供關於開發和生產工作流程的完美工作流程的一些提示。當我使用Bundler時,爲什麼我應該關心RVM的Gemset功能?

我也不知道什麼時候RVM開始切換到另一個Ruby。我知道我的項目中可以有一個.rvmrc文件,但是我必須cd到這個目錄,以便交換機發生?

此外,我通常使用客運發展以來,由於Passenger.prefpane,整合的Mac OS是巨大的。我仍然可以使用RVM來做到這一點,還是有更好的方法來做到這一點? 乘客承認.rvmrc文件並切換到正確的Gemset?

+2

是的,rvm將cd重新定義爲shell函數,它在更改目錄時檢查.rvmrc文件。 – Sam 2011-01-28 11:21:08

回答

6

當我正在處理遺留代碼或分叉其他非rails rails項目時,由於任何原因導致bundle路徑失敗,gemsets是非常棒的東西。在開發寶石的同時,我也發現寶石非常寶貴。很高興有多個測試環境來切換和測試新建的寶石。

就我所知,乘客並不讀取.rvmrc。盡我所知,您不能在不同的紅寶石中使用不同的項目。我的默認導軌設置在全局gemset中只有bundlerrake。我讓bundler從那裏接管,並像您所描述的那樣管理其他寶石項目。工作得很好。

+0

這是否意味着您的每個項目都有一個獨立的gemset?我的意思是你正在談論你的「默認導軌設置」。在某種程度上,這種設置可能會演變成特定項目的狀態。那麼你有一個自定義寶石?你如何在你的開發機器上運行你的應用程序? – t6d 2011-01-14 09:52:48

+0

是的,我的所有非rails項目和一個gemset for rails(僅包含bundler)都有獨立的gemset。所有的rails項目的gem需求,我讓bundler處理 - 例如`bundle exec rails server`或`bundle exec rake`。所以,我的Gemfiles隨着軌道項目的發展而演變,但是`rails` gemset不會。 – anshul 2011-01-17 11:43:14

1

如果預計不必改變你的捆綁版本,您一定要使用gemsets。你可以使用gemset來管理對你的Rails應用程序無關緊要的寶石(wirble等)。

相關問題