Bir paketi güncelledikten sonra, bu mücevherin daha yeni bir sürümü yüklendiğinden, modası geçmiş bazı mücevherleriniz olacaktır. Altında böyle bir komut yoktur. bundle
çalıştırılabilir bundle clean
. Bu eskimiş mücevherlerden nasıl kurtulur?
Bu raylar uygulamasında sümük boyutunu azaltmak için bir girişim.
Bundler 1.1 kullanıyorsanız veya daha sonra kullanabilirsiniz bundle clean
Tıpkı senin hayal edebileceğin gibi. Kullanıyorsanız bu gereksizdir bundle install --path
(Bundler belirttiğiniz lokasyonu --path ile yönetir, bu nedenle eski mücevherleri kaldırmak için sorumluluk alır), ancak sistem mücevherleri olarak mücevherleri yüklemek için Bundler'ı kullandıysanız bundle clean --force
Gemfile tarafından gerekli olmayan tüm sistem mücevherlerini siler. Göz kamaştırıcı bariz bir uyarı: Gemfile'ınızda olmayan sistem mücevherlerine dayanan başka uygulamalarınız varsa bunu yapmayın!
Pat Shaughnessy'nin iyi bir açıklaması var bundle clean
ve bundler 1.1'deki diğer yeni eklemeler.
RVM kullanıyorsanız rvm gemset empty
mevcut mücevher için - bu komut mevcut gemsete takılı tüm taşları kaldıracaktır (gemsetin kendisi yerinde kalacak). O zaman koş bundle install
taşlar gerçek sürümlerini yüklemek için. Ayrıca tırmık, demetleyici vb. Gibi genel taşları silmediğinizden emin olun. rvm gemset empty
(eğer durum buysa, bunları manuel olarak yükleyin) gem install
önce bundle install
).
RVM kullanıyorsanız, mücevherlerinizi gemsets. Bu şekilde, tam bir temizlik yapmak istediğinizde, basit bir şekilde, takılan tüm taşları takan gemseti kaldırabilirsiniz. Diğer seçeneğiniz, kullanılmayan mücevherleri kaldırmanız ve tekrar çalıştırmanızdır. bundle install
Komut.
Bundler, proje başına bir mücevher sürüm oluşturma aracı olması gerektiği için bir bundle clean
Komut. Bunu yapmak, diğer projelerle ilişkili olan mücevherlerin çıkarılması olasılığını da beraberinde getirecektir ki bu da arzu edilmeyecektir. Bu, bundler muhtemelen gem dizini yönetmek için kullanmak için yanlış bir araç olduğu anlamına gelir. Benim kişisel tavsiyem, belirli projelerde veya yakut sürümlerinde mücevherlerinizi korumak için RVM gemsetlerini kullanmak olacaktır.
Dürüst olmak gerekirse, paketin yuvarlak bağımlılıkları ile ilgili sorunlar yaşadım ve en iyi yol rm -rf .bundle
. Kendinizi baş ağrısından kurtarın ve sadece çekiç kullanın.
Mücevherleri taktığını sanıyorum. vendor/bundle
? Eğer öyleyse, neden sadece tüm taşlar silmek ve temiz yapmak bundle install
?
Karşılaştığım aynı soruya bir cevap ararken gem_unused.
Bu makaleyi okumak da isteyebilirsiniz: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Kaynak kodu GitHub'da kullanılabilir: https://github.com/apolzon/gem_unused
Sadece eski taşlar Gemfile'dan kaldırın. Eğer Heroku hakkında konuşuyorsanız (bundan bahsetmediniz) o zaman sümük her yeni sürümde derlenir, sadece o dosyanın mevcut içeriği kullanılır.