Как отменить установку пакета?
Я работаю над блогом Octopress, поэтому я настроил отдельный гемсет и сделал rvm use gemset octopress
, Все работало нормально. Тем не менее, я открыл новую вкладку ZSH (я на OS X Mountain Lion, если это актуально), и она вернулась к предыдущему гемсету, который я использовал. Я не знал, что в тот момент, поэтому я побежал bundle install
, Я заметил, что он установил все драгоценные камни, которые я уже установил в наборе драгоценных камней Octopress, поэтому я понял, что происходит. Вопрос: есть ли простой способ отменить это bundle install
, так что у меня нет всех этих драгоценных камней в другом наборе драгоценных камней, или я должен удалить их вручную gem by gem (их довольно много). Благодарю.
2 ответа
Вы можете очистить наборы гемов с помощью rvm:
rvm gemset empty
он удалит все драгоценные камни из выбранного набора камней, вы также можете временно переключиться на другой набор камней с помощью:
rvm @the-other-gemset do rvm gemset empty
Пару дней назад у меня была такая же проблема (еще раз), и я решил ее, написав эту команду:
$ threshold="20m"; dir="`rvm gemdir`/gems"; find -X "$dir" -type d -maxdepth 1 -mindepth 1 -mtime -"$threshold" | xargs basename | sed -e 's/-\(\([0-9]\{1,\}.\)*[0-9]\{1,\}\)$/ \1/g' -e 's/\(.*\) \(.*\)/gem uninstall \1 --version \2 --executables --ignore-dependencies \&/g'
Он генерирует столько командных строк, сколько необходимо для удаления каждого драгоценного камня, который был добавлен после заданного порогового значения (выше - двадцать минут). Затем вы просто копируете и вставляете эти строки в командной строке.
Перед выполнением моей команды:
- убедитесь, что текущий набор драгоценностей является тем, который испорчен
- установить
threshold
на значение, которое соответствует вашим потребностям
Например, приведенная выше команда может генерировать следующие строки:
gem uninstall elasticsearch --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-api --version 1.0.1 --executables --ignore-dependencies &
gem uninstall elasticsearch-extensions --version 0.0.14 --executables --ignore-dependencies &
gem uninstall elasticsearch-transport --version 1.0.1 --executables --ignore-dependencies &
Если вам нужна дополнительная информация, я разместил статью здесь: http://noteslog.com/post/how-to-undo-a-wrong-bundle-install/