Как удалить RVM (менеджер версий Ruby) из моей системы

575

Как я могу удалить RVM (Ruby Version Manager) из моей системы?

lucianosousa
источник
9
Не уверен насчет ваших намерений удалить rvm- это может быть его «навязчивость» - но rbenvэто достойная альтернатива. Вы по-прежнему можете управлять несколькими версиями Ruby в вашей системе, но это не отменяет команд оболочки, не управляет наборами гемов ( Bundler более чем достаточно), и его не нужно загружать в оболочку.
Йохем Шуленклоппер

Ответы:

923

Есть простая встроенная команда, которая будет тянуть его:

rvm implode

Это удалит rvm/каталог и все встроенные в него рубины. Чтобы удалить окончательный след rvm, вам также необходимо удалить гем rvm:

gem uninstall rvm

Если вы внесли изменения в свой, PATHвы, возможно, захотите их тоже. Проверьте ваши .bashrc, .profileи .bash_profileфайлы, среди прочего.

У вас также может быть /etc/rvmrcфайл или файл в вашем домашнем каталоге, ~/.rvmrcкоторый также может потребоваться удалить.

Тадман
источник
21
+1 за то, что вы отметили настройки профиля и удаление драгоценного камня, если вы сначала не слушали Уэйна и установили его как драгоценный камень. :)
Джед Шнайдер
7
Если вы, как и я, настроили rvm на пассажире, обязательно переустановите пассажира и после него.
Беркес
4
Это может временно прервать его до тех пор, пока вы не создадите новую оболочку, так как именно такие вещи, как bashповедение, ведут себя, когда вы вынимаете исполняемые файлы из PATH.
tadman
14
У меня также была ссылка на RVM в~/.zshrc
Нейт Кук
8
Кто-нибудь еще чувствует, что удаление rvm должно быть проще, чем это? Хороший соус
mycargus
56

Если другие ответы не удаляют RVM достаточно для вас, страница Устранения неполадок RVM содержит этот раздел:

Как полностью удалить все следы RVM из моей системы, в том числе для общесистемных установок?

Вот пользовательский скрипт, который мы называем как cleanout-rvm. Хотя вы, безусловно, можете использовать его rvm implodeкак обычный пользователь или rvmsudo rvm implodeдля установки в масштабе всей системы, этот сценарий полезен, поскольку он полностью выходит за пределы RVM и очищает RVM без использования самого RVM, не оставляя следов.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete
or comment out if this was a Per-User installation."
Рори О'Кейн
источник
37

При использовании implodeи вы видите:

Psychologist intervened, cancelling implosion, crisis avoided :)

Тогда вы можете использовать --force

rvm implode --force

Затем удалите RVM из следующих мест:

rm -rf /usr/local/rvm
sudo rm /etc/profile.d/rvm.sh
sudo rm /etc/rvmrc
sudo rm ~/.rvmrc

Проверьте следующие файлы и удалите или закомментируйте ссылки на RVM:

~/.bashrc 
~/.bash_profile 
~/.profile 
~/.zshrc
~/.zlogin

Закомментируйте / удалите следующие строки из / etc / profile:

 source /etc/profile.d/sm.sh
 source /etc/profile.d/rvm.sh

/ etc / profile - файл только для чтения, поэтому используйте:

sudo vim /etc/profile

А после внесения изменений пиши используя удар!

:w!

Наконец, повторно войдите в систему / перезапустите свой терминал.

Кингсли Иджома
источник
Что заставляет это первоначальное сообщение появиться?
Newbyte
1
Если RVM был установлен для одного пользователя, его не следовало использовать sudoизначально, поэтому ни один из его файлов не будет находиться в пути /etcили /usr. Только тогда , когда она была установлена с помощью многопользовательского или sudoвы увидите , что их существование сильные намеки , что документация установки RVM была НЕ следовать , чтобы установить его в первую очередь.
Жестянщик
17

В дополнение к ответу @ tadman я удалил обертки /usr/local/binи файл /etc/profile.d/rvm.

Обертки включают в себя:

erb
gem
irb
rake
rdoc
ri
ruby
testrb
hinosx
источник
3
Примечание: это /usr/local/binне так /user/local/bin.
bfontaine
7

Многие люди делают общую ошибку, думая, что это делает «rvm implode». Вам необходимо удалить все следы любых файлов .rm. Кроме того, это займет некоторые ручные удаления из корня. Убедитесь, что он удален, а также все версии ruby, установленные с его помощью.

Кодер кофеина
источник
6

Удалите скрипт загрузки RVM из /.bash_rc или /.zsh_rc, затем используйте:

rm -rf /.rvm

Или:

rvm implode
Вишну Атраи
источник
2
Это рвм rm -rf /.rvmили rm -rf ~/.rvm?
Шибль
5

Запустить:

rvm implode

Теперь вам нужно удалить гем RVM, используя:

gem uninstall rvm

Проверьте, есть ли в вашем домашнем каталоге оставшиеся файлы RVM, если да, удалите их.

Перейдите в домашний каталог и перечислите все скрытые файлы:

ls -a

rm  .rvm
rm  .rvmrc
slal
источник
Примечание: RVM не драгоценный камень, поэтому gem uninstall rvmпотерпит неудачу.
Жестянщик
3

Обратите внимание, что если вы установили RVM через apt-get, вам нужно выполнить некоторые дополнительные действия, кроме rvm implodeилиapt-get remove ruby-rvm получить его, чтобы действительно удалить.

Смотрите " Установка RVM в Ubuntu ".

rogerdpack
источник
2

Если вы все еще получаете, env: ruby_executable_hooks: No such file or directoryкогда звоните в какой-то пакет Ruby, это означает, что RVM оставил для вас небольшой подарок $PATH.

Выполните следующие действия, чтобы найти скрипты:

grep '#!/usr/bin/env ruby_executable_hooks' /usr/local/bin/*

Тогда rmвсе совпадения. gemКонечно, вам придется переустанавливать все эти библиотеки без RVM .

chbrown
источник
2

Для других новичков оболочки пытаются исправить переменную PATH

После выполнения инструкций в принятом ответе проверьте и измените переменную PATH, если необходимо:

env | grep PATH 

если вы видите «rvm» в любом месте, вам нужно выяснить, где вы устанавливаете PATH и изменить. Я устанавливал его в 3 файлах - так что проверьте все следующие файлы:

vim .bashrc  

Удалите строки в файле, ссылающемся на rvm, с помощью команды dd. : wq для сохранения и выхода.
source .bashrc«перезагрузить»

Повторите этот процесс (начиная с команды vim) для .profile и .bash_profile

leenyburger
источник
Это отличный момент.
Жестянщик
0

В документации по устранению неполадок RVM « Как полностью удалить все следы RVM из моей системы, в том числе для общесистемных установок? »:

Вот пользовательский скрипт, который мы называем «cleanout-rvm». Хотя вы, безусловно, можете использовать его rvm implodeкак обычный пользователь или rvmsudo rvm implodeдля установки в масштабе всей системы, этот скрипт полезен, поскольку он полностью выходит за пределы RVM и очищает RVM без использования самого RVM, не оставляя следов.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete or comment out if this was a Per-User installation."
жестяной человек
источник
0

Я бегу Ubuntu 19.04 и следовал всем инструкциям выше, а затем некоторые. Наконец то, что сработало для меня, это запустить

sudo apt autoremove rvm

и теперь, когда я пытаюсь переустановить RVM, это на самом деле прошло. RVM агрессивен, если не сказать больше.

abadfish
источник
Существует множество попыток объяснить, как установить RVM через Интернет, и большинство из них очень устарели и совершенно ошибочны, потому что приложение сильно выросло за годы, прошедшие с момента его выпуска. Сайт RVM является окончательным источником информации об установке, удалении или использовании. Есть много страниц, потому что это гибкий инструмент, но если вы будете следовать основной установке, вы обнаружите, что она совсем не агрессивна и довольно проста в управлении или удалении.
Жестянщик
-1

Я попробовал вышеуказанные команды, чтобы удалить RVM из macOS, но каким-то образом он все еще обнаруживался в пути.

Вот что я сделал, и это сработало:

$ open ~/.bash_profile

Добавьте в свой профиль bash следующее:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Затем в терминале запустите:

$ source ~/.bash_profile
Суми
источник
Это должно быть где-то инициализировано; grepдля этих переменных в вашем домашнем каталоге и шансы хороши, вы узнаете, где. В многопользовательской установке они могут быть в /env/bash_profile.
Жестянщик
Я использовал grep. Я забыл упомянуть. Извиняюсь.
Суми
Можно отредактировать свой ответ и изменить его, чтобы более точно показать, что вы сделали. Помните, что SO касается не немедленного решения для OP, а скорее долгосрочных ответов для тех, кто ищет решения в будущем. Люди забывают, что это не просто сайт, а о внесении позитивных изменений в код программистов.
Жестянщик