2013-03-26 141 views
1

我部署Rails應用程序,這是我目前做:捆紮機命令捆綁安裝--deployment沒有捆綁所有寶石

構建應用程序的步驟:由git的哈希標籤

  1. 混帳同步
  2. 將寶石捆綁到應用程序自我目錄(供應商/捆綁銷售)中。
  3. 預先編譯資產。
  4. 將應用程序構建到debian包(.deb)中。
  5. 在目標機器上,我只需要dpkg -i myapplication.deb來安裝它。那是。

現在的問題是步驟2

後我執行束包裝--all束安裝--deployment,沒有被綁定到供應商/束/紅寶石/ 1.9.1所有寶石/ gems /,它們是來自git路徑的寶石,而不是默認的rubygems.org。

 
➜ luna-server git:(v0.1.0) ✗ bundle show rails 
/Users/qichunren/code/work/luna-server/vendor/bundle/ruby/1.9.1/gems/rails-3.2.11 
➜ luna-server git:(v0.1.0) ✗ bundle show luna-channel 
/Users/qichunren/code/work/luna-server/vendor/cache/luna-channel-31bb309440e5 

所以,當我跑我的建造軌道目標機上的應用,它表現出一定的寶石沒有安裝(如:月神通道),請安裝捆綁在一起,因爲它不是/vendor/bundle/ruby/1.9。 1 /寶石/

有沒有辦法讓所有的寶石從捆綁緩存到目標捆綁目錄?

請幫幫我。謝謝。

+0

你有沒有想過解決這個問題?嘗試供應我的ruby應用程序時遇到同樣的問題。我正在考慮隻手工複製我的寶石,因爲明顯bundler是有史以來最差的依賴管理器。從來沒有見過這樣一種工具,它以許多奇特的方式破碎了。 – 2013-11-27 17:11:04

+0

我有快速入侵修復問題,這是我的git提交:https://github.com/qichunren/bundler/commit/192c822724f356f2573cabd4fd4ddc1a217b7d8b 但作者不認爲這是一個錯誤:https://github.com/bundler/bundler/pull/2423和 https:// github。com/bundler/bundler/issues/2422 – qichunren 2013-11-28 03:48:13

回答

0

上有bundle installlink to docs

一個--path選項這告訴捆綁的確切路徑安裝所有的寶石。

您的發展風格並不典型,所以我強烈建議您仔細閱讀捆綁包文檔,並確定bundle packagebundle install --deployment是做什麼的。

http://gembundler.com/v1.3/deploying.html
http://gembundler.com/v1.3/bundle_package.html

有時很難看到,當他們在談論開發機或生產機器。

+0

不,--path選項對我沒有用處,我只想將它捆綁到默認目錄:./vendor/bundle。 問題是:並非所有類型的gem都捆綁到./vendor/bundle,git倉庫或路徑中的gem仍然保留在./vendor/cache中。而且我不想讓./vendor/cache目錄留在我的構建包中。這是問題。 – qichunren 2013-03-26 11:39:24