2013-08-30 4 views
2

Я работаю над блоком Octopress, поэтому я создал отдельный гемсет и сделал rvm use gemset octopress. Все работало нормально. Тем не менее, я открыл новую вкладку ZSH (я нахожусь в OS X Mountain Lion, если это актуально), и она вернулась к предыдущему гемсету, который я использовал. Я не знал, что в этот момент, поэтому, я побежал bundle install. Я заметил, что он установил все драгоценные камни, которые я уже установил в gemset Octopress, поэтому я понял, что происходит. Вопрос: есть ли простой способ отменить этот bundle install, так что у меня нет всех этих драгоценных камней в другом наборе gemset, или я должен удалить их вручную gem с помощью gem (их довольно много). Благодарю.Как отменить установку пакета?

+0

Если вы хотите использовать определенные версии Gems, просто укажите их в файле gem и обновлении пакета запусков. Если есть драгоценные камни, которые вам не нужны или вам нужно просто удалить gem Gem_name –

+1

Вы правильно ответили на свой вопрос. Мне нравится копировать/вставлять выходные данные установки пакета в текстовый файл для ссылки, прежде чем начинать деинсталляцию любых драгоценных камней. – Teddy

ответ

3

вы можете очистить gemsets с РВМ:

rvm gemset empty 

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

rvm @the-other-gemset do rvm gemset empty 
+0

Приятно, спасибо. Итак, идея состоит в том, что я опорожнил соответствующий гемсет, а затем из правильной папки приложения я запускаю установку пакета, чтобы заполнить ее только камнями, необходимыми для этого конкретного приложения, не так ли? –

+0

Да, это будет работать так, как вы хотите – mpapis

1

Пару дней назад У меня возникла такая же проблема (еще раз) и решила ее, написав эту команду:

$ 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' 

Он генерирует столько команд, сколько необходимо для удаления каждого драгоценного камня, который был добавлен после заданного порога (выше 20 минут). Затем вы просто копируете и вставляете эти строки в командной строке.

Перед выполнение моей команды:

  1. убедитесь, что ток gemset является тот, который испорчен
  2. установить 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/