Benim Gemfile tam sürüm belirtmek gerekir mi?
Rubygems.org üzerinde taşlar bir sürü tam sürüm yerine sürüm bunları belirtmek önermek fark ettim. Örnek...
gem "haml-rails", "~> 0.3.4" # "$ bundle install" will acquire the
# latest version before 1.0.
Ancak, Bundler docs göre daha iyi bu şekilde tam sürüm nas? l olacak bana öyle geliyordu...
gem "haml-rails", "0.3.4"
Haml-raylar gem ve tüm bağımlılıklarından ileri drift olmaz işte. Farklı bir makine, bir kaç hafta sonra proje kontrol ve $ bundle install
çalıştırırsanız tam olarak belirttiğiniz her şeyi aynı sürüm olacak.
Nokta bültenleri şarabı gördüm, ve düşündüm oldu Toplayıcı fikrine parçası "Bundle.lock
" tüm gem sürümlerini.
Ama rubygems.org kullandıkları "~>" belki de ben bir şey eksik o kadar çok mu?
Herhangi bir açıklama anlama Toplayıcı ve gem yönetimi bana çok yardımcı olurdu.
CEVAP
Bu Gemfile amacı da budur.dosya - bir Gemfile bundle install
çalıştırma kilidi.kilit sadece yükler bağımlılıklar orada yer kullanarak mevcut; yeniden çözmek Gemfile değil. Bağımlılıklar update / gem sürümleri güncellemek için, daha sonra açıkça yapmak zorunda sizin Gemfile güncelleme bundle update
,.dosya kilidi.
Bir Gemfile olmasaydı.kilit, üretim için kod dağıtma bahsettiğin gibi, bağımlılıkları ve mücevher sürümleri değişebilir çünkü büyük bir sorun olurdu.
Kısacası, genel olarak güvenli rubygems.org tavsiye olarak karamsar sürüm kısıtlaması operatörü (~>
) kullanıyor olmalıdır. Sadece bundle update
bir şey keser emin olmak için yapın, sonra yeniden çalıştırın testlerinizi emin olun.
Gemfile biraz daha Bilgi olan Yehuda nice article Katz var.kilit.
Nasıl benim iphone uygulama kendi sürü...
Ne sürüm bilgisi olmayan tüm/yoksayıla...
Nasıl benim gizli anahtarları kaydedeb...
Ruby benim komut temel bir yöntem tanı...
Neden benim sunum katmanından benim et...