Удалите старые версии 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

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

ohho
источник
Не работает в моей настройке 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

user3118220
источник
Вы, вероятно, не должны использовать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
lkraider
источник