2012-03-11 41 views
1

而且,系統如何在不經過軟件包安裝過程的情況下爲應用程序安裝所有gem?當創建一個新的Rails應用程序時,爲什麼沒有運行bundle install的Gemfile.lock文件?

注:這個問題是關於創建一個新應用程序的過程。與In Rails, why there is a new Gemfile.lock when no bundle or bundle install was run? (and a new Gemfile timestamp too)不一樣的問題。

+1

在Rails 3.1中,'new'生成器實際上觸發'bundle install'。這是你指的是什麼? – coreyward 2012-03-11 03:02:55

+0

哦,真的嗎?好的,這是有道理的。沒有注意到。 – 2012-03-11 03:10:08

回答

2

Gemfile.lock是在運行bundle install時創建的寶石及其版本的快照。正如檢查你的代碼解釋版本控制Bundler rationale的部分:

Gemfile.lock的使您的應用程序都自己 代碼和它運行的最後一次這樣的第三方代碼的單個包裝你知道肯定 ,一切正常。指定您在Gemfile中依賴的第三方 代碼的確切版本不會提供相同的 保證,因爲寶石通常會爲其 依賴項聲明一系列版本。

寶石可以打捆外由RubyGems(例如gem install gem_name)安裝好,但最好還是使用RVM它允許你安裝Ruby的不同版本和管理各個gemsets爲每個應用程序如RVM best practices解釋。

+0

我認爲提問者在問題中意外地寫了「with」而不是「without」。 – James 2012-03-11 03:35:26

+0

是的,重新閱讀後,我認爲你是對的。 – manafire 2012-03-11 04:04:09

+1

不,我的意思是'沒有通過捆綁安裝過程'。 – 2012-03-11 15:04:49

相關問題