2011-03-25 52 views
2

這是因爲在gembundler.com,它說:當我的同事運行「捆綁安裝」時,他會在Gemfile.lock中安裝最新的寶石還是那些?

確保Gemfile.lock的添加到您的 庫。這將確保您的應用中的其他開發人員 以及您的部署環境中的 ,使用 與您剛安裝的 完全相同的第三方代碼。

所以,假設我只是說

gem 'rails' 

所以當我的同事做了bundle install 3個月後,Rails的3.0.6或更高版本發佈的時候,他會安裝3.0.6或一個在Gemfile.lock? (現在是3.0.5)

如果一切都必須完全符合Gemfile.lock,那麼更新Gemfile.lock的過程是什麼?確保所有測試都通過了,然後以某種方式告訴bunlder將所有gem升級到最新版本,並再次運行測試並確保它們通過,然後提交最新的Gemfile.lock?

回答

7

bundle install將安裝在Gemfile.lock中找到的寶石版本。要更新到最新的允許版本,您應該運行bundle update(它也會更新Gemfile.lock)。如果更新後出現問題(例如,測試失敗),則可以回退到存儲庫中先前版本的Gemfile.lock,並再次運行bundle install以獲取之前正在運行的gem版本。此外,單個寶石可以由bundle update <gem_name>更新,例如, bundle update rails(也解決了依賴性和更新Gemfile.lock)。

+0

因此,我認爲'bundle install'只會在Gemfile.lock不存在的時候安裝最新的gem(通常是第一次運行'bundle install'),'Gemfile'中的'gem'語句沒有指定版 – 2011-03-25 13:28:32

相關問題