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.