Soru raylar temiz demeti


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.


76
2017-10-26 15:36


Menşei




Cevaplar:


Bundler 1.1 kullanıyorsanız veya daha sonra kullanabilirsiniz bundle cleanTı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.


120
2018-04-17 11:47



Rvm kullananlar için şunu unutmayın bundle clean --force Küresel mücevherlerine dokunmaz, ama sadece şu andaki gemsinizdekiler. Yani bundle clean --forceaynı sonucu üretir ve daha hızlıdır rvm gemset empty bunu takiben bundle install. - Gabe Kopley
YASAL UYARI: "Bundle clean --force", dikkatli değilseniz çok sayıda taş atlatabilir. Bu yanıtın ilk satırı olmalı ... özellikle de çok fazla oyu olduğu için. DİKKATLİ OL! - jerrylroberts


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).


34
2018-01-25 22:23





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.


21
2017-10-26 16:03



Gemseti kaldırmanıza gerek yok, 'rvm gemset empty gemset_name' yazıp tekrar 'bundle install' yazabilirsiniz. - JAG
Harika bir açıklama. Bundler hakkında yardımcı olduğunu biliyor. Teşekkürler. - Volte
demet temiz - güç işi yapacak - sailor
Teşekkürler, sailor! - Joshua Muheim
rvm ile, "bundle install", taşlar yeniden indirmeyi reddederse .rvm / gems / ruby-xxxxxx / features klasörünü silin. - barbacan


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.


10
2017-12-12 14:44



Aslında bana yardımcı olmadı, aynı hata. - holms
"Paketleme yüklemesini --no-deployment ile çağırmanız" konusunda beni rahatsız etmemek için bunu yapmak zorunda kaldım. Teşekkürler - Kevin
Fikir için teşekkürler. Benim için olsa da, daha büyük bir çekiç kullanmak yardımcı oldu. rvm implode --force ve sonra rvm'yi yeniden yükleyin - Ryan


Mücevherleri taktığını sanıyorum. vendor/bundle? Eğer öyleyse, neden sadece tüm taşlar silmek ve temiz yapmak bundle install?


1
2017-10-26 16:06



Satıcı dizinim yalnızca varlıkları ve yüklü eklentileri izler. Rails 3.1'deyim - iGbanam
Öyleyse eğer dağıtılmamış kopyaları kaldırırsanız, kullanılmayan mücevherleri kaldırma sebebiniz nedir? O kadar yer kaplamıyorlar. - Leonid Shevtsov
Bu raylar uygulamasını bir intranette dağıtıyorum; Dosyaları ve ortamı yerel olarak ele alıyorum. Bunun için kullanabileceğim herhangi bir çözüm biliyorsanız, lütfen paylaşın. - iGbanam


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


1
2018-02-07 23:26





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.


0
2017-10-26 16:10



Bu mutlaka heroku için değil. Raylar uygulamasının kendisinin boyutunu azaltmak istiyorum. - iGbanam