Удалите старые версии Ruby Gems


381

У меня есть несколько версий Ruby Gem:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Как я могу удалить старые версии, но сохранить самые последние?

Ответы:


654
# 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

Для удаления старых версий всех установленных гемов полезны следующие 2 команды:

 gem cleanup --dryrun

Выше команда будет просматривать, какие драгоценные камни будут удалены.

 gem cleanup

Выше команда на самом деле удалит их.


Не работает в моей настройке Ubuntu Cloud9 ... должен работать с sudo
— Мирв - Мэтт

13

Попробуйте что-то вроде gem uninstall rjb --version 1.3.4.


1
вопрос был "Как я могу удалить старые версии, но сохранить самые последние?" этот ответ удалит самую новую версию.
— Остинхейман

10

Способ очистки любых старых версий драгоценных камней.

sudo gem cleanup

Если вы просто хотите увидеть список того, что будет удалено, вы можете использовать:

sudo gem cleanup -d

Вы также можете очистить только определенный драгоценный камень, указав его имя:

sudo gem cleanup gemname

только для удаления конкретной версии, такой как 1.1.9

gem uninstall gemname --version 1.1.9

Если вы все еще сталкиваетесь с каким-то исключением при установке gem, например:

неверный gem: пакет поврежден, исключение при проверке: неопределенный метод `size 'для nil: NilClass (NoMethodError) в /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. драгоценный камень

Вы можете удалить его из кеша:

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

Для более подробной информации:

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


Вы, вероятно, не должны использоватьsudo
— PR Whitehead

8

gem cleanupиспользует системные команды. Установленные гемы - это просто каталоги в файловой системе. Если вы хотите групповое удаление, используйте rm -R.

  1. gem environment и обратите внимание на ценность GEM PATHS
  2. cd <your-gem-paths>/gems
  3. ls -1 |grep rjb- |xargs rm -R

2
«Установленные гемы - это просто каталоги в файловой системе».
— Полезно

0

Возможно, вам придется настроить GEM_HOMEочистку на работу. Вы можете проверить, какие пути существуют для gemfiles, запустив:

gem env

Обратите внимание на раздел «ДРАГОЦЕННЫЕ КАМНИ».

В моем случае, например, с драгоценными камнями, установленными в моем домашнем компьютере пользователя:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.