Деинсталляция рельсов и драгоценных камней, получение ошибки "невозможно удалить, проверьте 'список драгоценных камней -d ...' - PullRequest
13 голосов
/ 24 октября 2010

Я собираюсь начать с обычной строки noob "Я новичок в рельсах". О, и я использую Mac OSX 10.6.4

Я следил за инструкцией по настройке, особенно эти два здесь и здесь . Руководства великолепны, причина, по которой я использую второе, из-за RVM, и причина, по которой я использую первое, относится к MYSQL.

В любом случае, когда я начинал, я не следовал полностью указаниям, и поэтому после установки RVM по какой-то причине я установил рельсы с sudo gem install rails -v 2.3.8, потому что это версия, которая мне нужна. Итак ... Я понял, что использую системный рубин, и не использую преимущества RVM. Что я сделал сейчас, так это установил Ruby 1.9.2, чтобы я мог установить rails 3 и протестировать его, а также я установил 1.8.7 и rails 2.3.8, чтобы я мог использовать его для того, что мне нужно.

Теперь я пытаюсь удалить драгоценные камни из системы Ruby, но всякий раз, когда я пытаюсь это сделать, я получаю эту ошибку:

ОШИБКА: при выполнении гем ... (Gem :: InstallError)
не могу удалить, проверьте 'список драгоценных камней -d любой драгоценный камень, который я пытаюсь удалить '

Есть идеи как убрать рельсы и все эти драгоценные камни? Я просто хочу начать с нуля с RVM.


UPDATE:

Запустив команду gem list -d rails, я нашел драгоценные камни в /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18. Должен ли я удалить их вручную?

Ответы [ 7 ]

34 голосов
/ 24 октября 2010

РЕШЕНИЕ !! Я до сих пор не понимаю, почему это произошло, я бы с удовольствием, если бы кто-то мог объяснить. Почему путь не существовал? Чем вызвана эта ошибка?

Кроме того, я хочу упомянуть, что в решении, на которое я ссылался, есть комментарий о том, что вопрос является дубликатом. Тем не менее, оригинал имеет другое решение и мне не помогло (хотя это основа для нахождения этого ответа). Простое удаление драгоценных камней вручную в Finder не приведет к их удалению из списка драгоценных камней.

Без лишних слов - оказывается, что при попытке удалить драгоценный камень он не может найти свой путь (я думаю, что проблема заключается в установке с помощью sudo, но я могу ошибаться). Что вам нужно сделать, это (вы должны сделать это один за другим для каждого драгоценного камня, или, по крайней мере, я должен был):

  1. gem list -d 'name of gem' и обратите внимание на местоположение «Установлено в:» (в моем случае /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)
  2. sudo gem uninstall 'name of gem' -i 'the path noted above' (например, в моем случае sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  3. Некоторые драгоценные камни все еще могут не удаляться, возвращая ошибку прав доступа. Если это так, то вам нужно создать папку / bin по указанному выше пути. (в моем случае mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
  4. Продолжайте удаление, как в шаге 2, продолжая использовать исходный путь (/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8).

Теперь все деинсталляции должны работать!

17 голосов
/ 30 октября 2010

Две вещи, которые вы должны отметить при использовании rvm:

  1. Вы должны НИКОГДА не использовать sudo для установки драгоценных камней, просто выполните gem install xxx

  2. Вы не можете удалить драгоценные камни, установленные в наборе global из другого набора.Вы должны переключиться на глобальный набор гемов и удалить его оттуда:


 rvm gemset use global
 gem uninstall xxx
5 голосов
/ 01 августа 2011

выполните это либо в irb, либо в самом скрипте:

`gem list --no-versions`.split("\n").each do |gem|
  `gem list -d #{gem}`.gsub(/Installed at(.*):.*/).each do |dir|
    dir = dir.gsub(/Installed at(.*): /,'').gsub("\n", '')
    system "gem uninstall #{gem} -aIx -i #{dir}"
  end  
end
3 голосов
/ 01 мая 2014

попробуйте так:

sudo apt purge rails
0 голосов
/ 17 августа 2016

Я использовал RVM для управления своими наборами драгоценных камней и не выбрал их.Я был не в том, что выбрал неправильный набор камней, а в том, что я вообще не выбрал этот набор.Прекрасный способ провести большую часть часа моего первого утра после моих летних каникул!

0 голосов
/ 01 января 2016

Более общий ответ для удаления всех драгоценных камней для более старых версий gem 1.8.

список драгоценных камней --no-version | xargs sudo gem удалить -aIx

0 голосов
/ 24 октября 2010

хорошо, я вижу ....

на данный момент, если вы находитесь в терминале, переустановка всего шебанга займет не несколько минут

Я подозреваю, что у вас может быть неправильное имя rvm, содержащее гемы, которые вы пытаетесь установить, поэтому я бы предложил переустановить rubygems и собрать ваши основные гемы с самого начала в вашем наборе Global rvm gemset имя.

...