Odinstaluj stare wersje klejnotów Ruby

381

Mam kilka wersji klejnotu Ruby:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Jak mogę usunąć stare wersje, ale zachować najnowsze?

Philippe Blayo
źródło

Odpowiedzi:

652
# 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'
Dylan Markow
źródło
259

Do usuwania starszych wersji wszystkich zainstalowanych klejnotów przydatne są 2 polecenia:

 gem cleanup --dryrun

Powyższe polecenie wyświetli podgląd klejnotów, które zostaną usunięte.

 gem cleanup

Powyższe polecenie spowoduje ich usunięcie.

ohho
źródło
Nie działa w mojej konfiguracji Ubuntu Cloud9 ... muszę działać z sudo
Mirv - Matt
13

Spróbuj czegoś takiego gem uninstall rjb --version 1.3.4.

Daniel O'Hara
źródło
1
pytanie brzmiało: „Jak mogę usunąć stare wersje, ale zachować najnowsze?” ta odpowiedź spowoduje usunięcie najnowszej wersji.
austinheiman
10

Sposób na usunięcie starych wersji klejnotów.

sudo gem cleanup

Jeśli chcesz zobaczyć listę tego, co zostanie usunięte, możesz użyć:

sudo gem cleanup -d

Możesz także wyczyścić tylko określony klejnot, podając jego nazwę:

sudo gem cleanup gemname

do usuwania określonej wersji, takiej jak tylko 1.1.9

gem uninstall gemname --version 1.1.9

Jeśli nadal masz jakiś wyjątek, aby zainstalować klejnot, na przykład:

niepoprawny klejnot: pakiet jest uszkodzony, wyjątek podczas sprawdzania: niezdefiniowana metoda `size 'dla nil: NilClass (NoMethodError) w /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. klejnot

możesz go usunąć z pamięci podręcznej:

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

Aby uzyskać więcej informacji:

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

użytkownik3118220
źródło
Prawdopodobnie nie powinieneś używaćsudo
PR Whitehead
8

gem cleanupużywa poleceń systemowych. Zainstalowane klejnoty to tylko katalogi w systemie plików. Jeśli chcesz grupowo usunąć, użyj rm -R.

  1. gem environment i zanotuj wartość GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R
Anatolij
źródło
2
„Zainstalowane klejnoty to tylko katalogi w systemie plików”. dobrze wiedzieć, dziękuję
Filip
0

Może być konieczne skonfigurowanie GEM_HOMEczyszczenia do działania. Możesz sprawdzić, jakie ścieżki istnieją dla plików gem, uruchamiając:

gem env

Zapoznaj się z sekcją ŚCIEŻKI GEM.

W moim przypadku na przykład z klejnotami zainstalowanymi w moim domu użytkownika:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Lkraider
źródło