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.