而且,系統如何在不經過軟件包安裝過程的情況下爲應用程序安裝所有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)不一樣的問題。
而且,系統如何在不經過軟件包安裝過程的情況下爲應用程序安裝所有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)不一樣的問題。
Gemfile.lock是在運行bundle install
時創建的寶石及其版本的快照。正如檢查你的代碼解釋版本控制的Bundler rationale的部分:
Gemfile.lock的使您的應用程序都自己 代碼和它運行的最後一次這樣的第三方代碼的單個包裝你知道肯定 ,一切正常。指定您在Gemfile中依賴的第三方 代碼的確切版本不會提供相同的 保證,因爲寶石通常會爲其 依賴項聲明一系列版本。
寶石可以打捆外由RubyGems(例如gem install gem_name
)安裝好,但最好還是使用RVM它允許你安裝Ruby的不同版本和管理各個gemsets爲每個應用程序如RVM best practices解釋。
在Rails 3.1中,'new'生成器實際上觸發'bundle install'。這是你指的是什麼? – coreyward 2012-03-11 03:02:55
哦,真的嗎?好的,這是有道理的。沒有注意到。 – 2012-03-11 03:10:08