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?

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'

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.


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.


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


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.