Видаліть старі версії Ruby gems


381

У мене є кілька версій дорогоцінного каміння Ruby:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

Як можна видалити старі версії, але зберегти найсвіжіші?

Відповіді:


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

Для видалення старих версій усіх встановлених дорогоцінних каменів корисні наступні 2 команди:

 gem cleanup --dryrun

Команда вгорі буде попередньо переглянути, які дорогоцінні камені будуть видалені.

 gem cleanup

Наведена вище команда фактично їх видалить.


Не працює в моїй настройці ubuntu cloud9 ... доведеться працювати з sudo
Mirv - Matt

13

Спробуйте щось на кшталт gem uninstall rjb --version 1.3.4.


1
питання було "Як я можу видалити старі версії, але зберегти найновіші?" ця відповідь видалить найновішу версію.
austinheiman

10

Спосіб очищення будь-яких старих версій дорогоцінних каменів.

sudo gem cleanup

Якщо ви просто хочете переглянути список того, що буде видалено, ви можете скористатися:

sudo gem cleanup -d

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

sudo gem cleanup gemname

для видалення конкретної версії, наприклад, 1.1.9

gem uninstall gemname --version 1.1.9

Якщо ви все ще стикаєтеся з деяким винятком, щоб встановити дорогоцінний камінь:

недійсний 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очищення для роботи. Ви можете перевірити, які шляхи існують для дорогоцінних файлів, запустивши:

gem env

Візьміть до уваги розділ GEM PATHS.

У моєму випадку, наприклад, з дорогоцінними каменями, встановленими в моєму будинку користувача:

export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.