如何从我的系统中删除RVM (Ruby版本管理器)

如何从我的系统中删除RVM (Ruby版本管理器)?

241926 次浏览

有一个简单的内置命令可以拉出它:

rvm implode

这将删除rvm/目录和其中构建的所有红宝石。如果你安装了rvm gem,为了删除rvm的最终跟踪,你也需要删除rvm gem:

gem uninstall rvm

在家酿、Apt或DNF安装中可能会有剩余的元素需要移除。这取决于您一开始是如何安装它的。这个清理步骤是可选的,因为RVM将不再涉及Ruby,但可以帮助保持事情的组织。

如果你对PATH做了修改,你可能也想把它们拉出来。检查.bashrc.profile.bash_profile文件。

您可能还需要删除一个/etc/rvmrc文件,或者主目录~/.rvmrc中的文件。

除了@tadman的回答,我删除了/usr/local/bin/etc/profile.d/rvm文件中的包装器。

包装材料包括:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

注意,如果你通过apt-get安装RVM,你必须运行一些比rvm implodeapt-get remove ruby-rvm更深入的步骤才能真正卸载它。

看到“# EYZ0”。

从/中删除RVM加载脚本。Bash_rc或/。Zsh_rc,然后使用:

rm -rf /.rvm

或者:

rvm implode

如果其他答案不能完全为您删除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."

很多人犯了一个常见的错误,认为是“rvm implode”做的。您需要删除任何.rm文件的所有痕迹。此外,它将从根目录中手动删除一些内容。确保它会被删除,你使用它安装的所有ruby版本也会被删除。

当使用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

在做出改变后,使用bang来写!

:w!

最后重新登录/重新启动您的终端。

如果你在调用Ruby包时仍然得到一个env: ruby_executable_hooks: No such file or directory,这意味着RVM在你的$PATH中给你留下了一个小礼物。

执行以下命令查找违规脚本:

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

然后rm所有匹配。当然,您必须使用无rvm的gem重新安装所有这些库。

对于其他试图修复PATH变量的shell新手

在遵循已接受答案中的说明后,如果需要,检查并修改PATH变量:

env | grep PATH

如果你在任何地方看到“rvm”,你需要弄清楚你在哪里设置PATH并修改。我把它设置在3个文件-所以检查所有以下文件:

vim .bashrc

使用dd命令删除rvm文件中的行。:wq保存并退出 source .bashrc到"reload"

对.profile和.bash_profile重复这个过程(从vim命令开始)

运行:

rvm implode

现在你需要使用以下方法卸载RVM gem:

gem uninstall rvm

检查您的主目录中是否有剩余的RVM文件,如果有,删除它们。

进入主目录并列出所有隐藏文件:

ls -a


rm  .rvm
rm  .rvmrc

我运行的是Ubuntu 19.04,并且遵循了上面所有的说明。最后,对我有用的是跑步

sudo apt autoremove rvm

现在当我尝试重新安装RVM时,它实际上已经消失了。RVM至少可以说是侵入性的。

根据RVM的故障排除文档“如何从系统中彻底清除RVM的所有痕迹,包括系统范围内的安装?”:

下面是一个自定义脚本,我们将其命名为“clean -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."

补充@Kingsley Ijomah的回答…

可能需要修复PATH,以便rvm命令也从终端中消失。

要检查您的PATH:

env | grep PATH

要修复您的路径删除RVM目录:

dir_to_remove=/home/user/.rvm/bin
PATH=:$PATH:
PATH=${PATH//:$dir_to_remove:/:}
PATH=${PATH#:}; PATH=${PATH%:}

在本例中,如果您有多个目录,则一次更改一个dir_to_remove

我需要删除一些rvm和rbenv目录,因为我现在使用asdf。

小心些而已。