Удаление всех установленных гемов и запуск заново

92

Недавно я начал изучать Ruby и Ruby on Rails и просмотрел множество материалов для начинающих. В последнее время я обнаружил, что продолжаю получать ошибки, когда драгоценные камни не устанавливаются или они будут установлены, но их нельзя использовать по какой-то причине, и я решил, что хочу удалить все, чтобы снова просто установить Ruby и начнем с установки. В одном обучающем видео я установил большинство своих драгоценных камней с помощью RVM, поэтому я не знаю, изменит ли это что-нибудь.

Короче говоря, мой вопрос: «Как мне избавиться от RVM, Rubygems и всех установленных Gems, чтобы я мог начать все заново, используя только Ruby?»

Изменить: я на Mac OS 10.6

Дэйв Лонг
источник
1
Вы устанавливали в / opt / ruby? Вот что я делаю, чтобы быстро удалить рубин.
альтернатива
См. Stackoverflow.com/questions/15100496/… Это должно работать и для 1.9.3 :)
Натан Лилиенталь,
Название вашего вопроса и краткое изложение вопроса в конце - это разные вещи ...
mpowered

Ответы:

118

С сайта поддержки RVM :

RVM устанавливает все в ~ / .rvm. Чтобы удалить RVM из вашей системы, запустите 'rm -rf ~ / .rvm'. У вас может быть один дополнительный файл конфигурации в ~ / .rvmrc и, конечно, ловушка RVM в ваших файлах запуска bash / zsh.

Итак, просто перейдите в командную строку и введите rm -rf ~/.rvm

Все установленные драгоценные камни находятся в папках ~ / .rvm, поэтому выполнение вышеуказанных действий приведет к удалению драгоценных камней и установленных рубинов за один раз.

Драгоценные камни, которые вы добавили до RVM с установкой ruby ​​по умолчанию, можно удалить, набрав это в командной строке:

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done
Майкл Майкл
источник
1
Я только что запустил это, но гемы все еще установлены. Однако похоже, что он его перезагрузил. Не уверен, что он перезагружается со значениями по умолчанию из Mac XCode или как ...
Дэйв Лонг,
добавил еще одну строку, чтобы избавиться от драгоценных камней, которые вы добавили до RVM
michaelmichael
1
Я бы добавил параметры '-all -x -I' для удаления gem, чтобы он не запрашивал вас (для двоичных файлов, версий или зависимостей) при удалении.
timmfin
4
Для справки, полная команда: для x в `gem list --no-versions`; удалить gem $ x -a -x -I; готово
Даниэль Ренер
7
Для справки, другой вариант:gem list --no-versions | xargs gem uninstall -aIx
trisweb
68
gem uninstall -aIx

Удаляет все драгоценные камни без запроса.

Параметры

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation
Брюки
источник
Это дает мне:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370
34

Для Windows и Unix скопируйте / вставьте в командной строке ( Ruby 1.9.x ).

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"
Харис Краина
источник
2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
isomorphismes
@isomorphismes не уверен, что я исправил это, но вы можете попробовать команду сейчас.
Харис Краина
22

используя RVM, вы можете просто ввести ...

rvm gemset empty GEMSET

где GEMSET - набор драгоценных камней, который вы хотите очистить. тогда...

установить пакет

yum install bundler и наконец

bundle install
mfittko
источник
14

rvm implode(см. cli docs ), похоже, работает - и он даже говорит вам, где искать остатки

Chesterbr
источник
2
Технически это наиболее правильный ответ, и именно для этого он был разработан.
mpowered
«implode - удаляет все установки Ruby, которыми он управляет, все в ~ / .rvm»
Нейн
5
  1. Это работает для меня на Ubuntu 16.04. Для меня, когда я выполнял команду rails -v, он выдает ошибки из-за NameError. Я установил 3 версии рельсов (4.2.0, 4.2.6, 5.0.0.1). Я пытался удалить ненужный гем с помощью команды gem uninstall rails -v номер версии, но не смог, но нашел способ решить эту проблему. Чтобы удалить все драгоценные камни, вы должны пройти через все записи в списке драгоценных камней с помощью сценария bash. Этот способ очень неудобен. Благодаря Rubygems 2.1.0 теперь вы можете делать это с помощью одной команды.

    ШАГ 1

    Во-первых, убедитесь, что вы обновили свои Rubygems до версии 2.1.0 или новее. Для этого запустите эту команду (если вы работаете над более старой версией. Вы можете проверить версию своего гема, используя эту команду, любой из них gem -v или gem --version )

    gem update --system

    жемчужина --версия

    ШАГ 2

    Запустите эту команду в своем терминале

    gem uninstall - все

    Шаг 3

    Установите пакеты gem (я думаю, что это необязательно из соображений предосторожности) gem install bundle

    Шаг - 4
    Установите рельсы в вашу систему, используя эту команду gem install rails -v,specific version you want to install вы можете проверить версию рельсов на официальном сайте. Пример всех версий рельсов : - Я установил рельсы версии 4.2.6, вы устанавливаете согласно требованиям. gem install rails -v 4.2.6

    Шаг - 5

    Наконец, проверьте версию установленного приложения rails framework с помощью базовой команды rails -v . Он будет повторять текущую версию каркасов рельсов. Наслаждаться :)

    Ссылки

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html

Мукеш Кумар Гупта
источник
2

Шаг 1:

Сначала я столкнулся с ошибкой, которая говорила:

У вас нет прав на запись в каталог / usr / bin

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

sudo -s

Кредит

Шаг 2:

Затем я продолжал сталкиваться с ошибкой, которая говорила:

[gem] нельзя удалить, потому что это гем по умолчанию

Это позволило мне удалить все:

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

Кредит

Джон Р. Перри
источник