Есть случаи, когда я хотел бы отменить и удалить все предыдущие установки gem.
Например, мне нужно было помочь другу перевести свою машину для разработки рельсов на использование RVM. Поскольку они ранее использовали общесистемную систему gem
, он испытывал много головной боли при работе с несколькими проектами. По сути, он был ребенком-постером для новообращенного RVM.
Как я могу элегантно удалить все драгоценные камни в его системе OSX?
yes Y | gem uninstall -a -I
Ответы:
Rubygems> = 2.1.0
a
удаляет все версииI
игнорирует зависимостиx
включает в себя исполняемые файлыRubgems <2.1.0
источник
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(драгоценный камень 2.0.3)for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
Вы также можете создать новый Gemfile и запустить
bundle clean --force
. Это удалит все другие драгоценные камни, которые не включены в новый Gemfile.источник
Самая простая версия, пропуская шаг вырезания, используя опцию --no-version:
Поскольку вы все удаляете, я не вижу необходимости в опции «Я». Всякий раз, когда камень удаляется, это нормально.
источник
sudo
не должно быть необходимости, если драгоценные камни были установлены обычным пользователем.Сначала убедитесь, что у вас есть хотя бы версия gem 2.1.0
Чтобы удалить, просто запустите:
Вам может понадобиться использовать
sudo
команду:источник
Используйте либо
или
В зависимости от того, что вы хотите, вам может потребоваться выполнить оба, потому что «список драгоценных камней» и «список драгоценных камней sudo» предоставляют независимые списки.
Не смешивайте обычный «список драгоценных камней» с sudo-ed «gem uninstall» и наоборот, иначе вы можете в конечном итоге удалить установленные sudo гемы (прежние) или получить много ошибок (последних).
источник
Если вы используете RubyGems версии 2.1.0 или более поздней версии, вы можете попробовать:
gem uninstall --all
.источник
Если вам нравится делать это с помощью ruby:
ура
источник
Rubygems> = 2.1.0
Если Терминал возвращается ниже ошибки
Затем напишите команду выше, как показано ниже
И введите пароль своей учетной записи Mac OS Готово!
источник
И для тех из вас, кто находится здесь, потому что вы хотите удалить все драгоценные камни с определенным префиксом ( хм, я смотрю на вас aws-sdk!), Вы можете запустить что-то вроде этого:
Очевидно, поставить в свой запрос вместо
aws-sdk-
. Вам нужно-I
там, чтобы игнорировать зависимости.Принял форму Ando более ранний ответ
источник
Единственная команда помогла мне очистить все драгоценные камни и игнорирует драгоценные камни по умолчанию, которые не могут быть удалены
источник
Я сделал это не так давно (та же ситуация с RVM-переключателем типа «ребенок-постер»):
Принимает список всех драгоценных камней (включая версии), вырезает его, сохраняя только имя драгоценного камня, затем удаляет все версии таких драгоценных камней.
Это
sudo
полезно только в том случае, если у вас установлены гемы в масштабе всей системы, и их не следует включать без необходимости.источник
При попытке удалить гемы, установленные как root, xargs останавливается, когда обнаруживает ошибку при попытке удалить гем по умолчанию:
Это не будет работать для всех, но вот что я использовал вместо этого:
источник
grep здесь исключает драгоценные камни по умолчанию. Все остальные драгоценные камни будут удалены. Вы также можете предшествовать этому
sudo
в случае, если у вас возникнут проблемы с разрешением.источник