Ruby gems eski sürümlerini kaldırın


381

Ruby gem birkaç sürümleri var:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Eski sürümleri nasıl kaldırabilirim, ancak en son sürümleri nasıl saklayabilirim?

Yanıtlar:


653
# remove all old versions of the gem
gem cleanup rjb

# choose which ones you want to remove
gem uninstall rjb

# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9

# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'

259

Yüklü tüm mücevherlerin eski sürümlerini kaldırmak için aşağıdaki 2 komut yararlıdır:

 gem cleanup --dryrun

Yukarıdaki komut, hangi mücevherlerin kaldırılacağını önizleyecektir.

 gem cleanup

Yukarıdaki komut aslında onları kaldıracaktır.


Ubuntu cloud9 kurulumumda çalışmıyor ... sudo ile çalışmak zorunda
Mirv - Matt

13

Gibi bir şey deneyin gem uninstall rjb --version 1.3.4.


1
soru "Eski sürümleri nasıl kaldırabilirim, ancak en son sürümleri nasıl koruyabilirim?" bu yanıt en yeni sürümü kaldıracaktır.
austinheiman

10

Taşların eski sürümlerini temizlemenin yolu.

sudo gem cleanup

Yalnızca nelerin kaldırılacağını görmek istiyorsanız aşağıdakileri kullanabilirsiniz:

sudo gem cleanup -d

Ayrıca, adını belirterek yalnızca belirli bir mücevheri de temizleyebilirsiniz:

sudo gem cleanup gemname

yalnızca 1.1.9 gibi belirli sürümleri kaldırmak için

gem uninstall gemname --version 1.1.9

Hala gem yüklemek için bir istisna ile karşı karşıyaysanız, örneğin:

geçersiz gem: paket bozuk, doğrulama sırasında istisna: nil için tanımsız yöntem `size ': /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. mücevher

, önbellekten kaldırabilirsiniz:

rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem

Daha fazla ayrıntı için:

http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html


Muhtemelen kullanmamalısınızsudo
PR Whitehead

8

gem cleanupsistem komutlarını kullanır. Yüklü taşlar sadece dosya sistemindeki dizinlerdir. Toplu olarak silmek istiyorsanız şunu kullanın:rm -R .

  1. gem environment ve değerini not edin GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
"Yüklü taşlar sadece dosya sistemindeki dizinlerdir." bilmek güzel, teşekkürler
philant

0

GEM_HOMETemizlemenin çalışması için ayarlamanız gerekebilir . Gemfiles için hangi yolların var olduğunu çalıştırarak kontrol edebilirsiniz:

gem env

GEM YOLLARI bölümünü not edin.

Benim durumumda, örneğin, kullanıcı evime taşlar yüklü:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.