我工作的一個控制檯Ruby應用程序(不軌道!)我就可以安裝在多臺計算機此應用程序。我想知道是否有一種方法可以構建它,因此我不必在每臺機器上安裝我用於應用程序的寶石。我希望能夠將目錄複製到每臺機器並運行它。理想情況下,我想將這些寶石放在lib文件夾或其他東西中,並從那裏引用它們,所以我不必將它們安裝在我的開發機器上。有沒有辦法做到這一點?紅寶石寶石在LIB - 備胎原則
在.NET中,我們稱此爲「備胎」的原則。
感謝, 克雷格
我工作的一個控制檯Ruby應用程序(不軌道!)我就可以安裝在多臺計算機此應用程序。我想知道是否有一種方法可以構建它,因此我不必在每臺機器上安裝我用於應用程序的寶石。我希望能夠將目錄複製到每臺機器並運行它。理想情況下,我想將這些寶石放在lib文件夾或其他東西中,並從那裏引用它們,所以我不必將它們安裝在我的開發機器上。有沒有辦法做到這一點?紅寶石寶石在LIB - 備胎原則
在.NET中,我們稱此爲「備胎」的原則。
感謝, 克雷格
如何使用bundler?
然後你就可以包括Gemfile中指定的所有necssary寶石,只是運行在每臺機器上「包安裝」拉下來。
如果你真的要與應用運行"bundle package"捆綁他們,寶石將被存儲在供應商/緩存。
你可以採取同樣的方法,因爲Rails允許和「供應商」你的寶石。這涉及到創建一個新的目錄(rails使用vendor/gems)並使用gem unpack將gem解包到這個目錄中。
然後,配置您的負載路徑包括以下所有的子文件夾。
編輯
你可以做這樣的事情
Dir.glob(File.join("vendor", "gems", "*", "lib")).each do |lib|
$LOAD_PATH.unshift(File.expand_path(lib))
end
很酷。你如何配置紅寶石的負載路徑? – fregas 2010-05-10 15:05:59
由於Bundler包含一個解壓寶石的選項,我會隨之去做。 – 2010-05-11 09:15:39
http://stackoverflow.com/questions/1110535/unpacking-freezing-gems-into-的重複配置負載路徑a-non-rails-ruby-app – 2010-05-09 23:40:31