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


575

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


9
不确定要删除的意图rvm-可能是它的'突出'-但它rbenv是一个值得选择的选择。您仍然可以在系统上管理多个Ruby版本,但它不会覆盖shell命令,也不管理gemsets( Bundler绰绰有余),并且不需要将其加载到Shell中。
Jochem Schulenklopper 2012年

Answers:


923

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

rvm implode

这将删除rvm/目录以及其中内置的所有红宝石。为了删除rvm的最终痕迹,您也需要删除rvm gem:

gem uninstall rvm

如果您已对自己进行了修改,PATH那么您可能也希望将其删除。检查.bashrc.profile.bash_profile文件,等等。

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


21
如果您不首先收听Wayne并将其作为gem安装, +1表示配置文件设置和gem卸载。:)
杰德·施耐德

7
如果您(像我一样)在乘客中配置了rvm,请确保随后也重新安装乘客。
berkes

4
它可能会暂时破坏它,直到您创建一个新的shell,这就是将bash可执行文件从中抽出时的行为PATH
tadman 2011年

14
我在~/.zshrc
Nate Cook

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最初不应该使用RVM,因此RVM 的所有文件都不会位于/etc/usr路径中。它是使用多用户或仅安装时sudo会看到这一点,他们的存在是强烈暗示了RVM安装文档不是遵循首先安装它。
锡人

17

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

包装包括:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

3
注意:/usr/local/bin不是/user/local/bin
bfontaine 2014年

7

很多人误以为'rvm implode'可以做到。您需要删除所有.rm文件的所有痕迹。另外,它将需要从root手动删除一些内容。确保它被删除,并且您使用它安装了所有红宝石版本。



5

跑:

rvm implode

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

gem uninstall rvm

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

转到主目录并列出所有隐藏文件:

ls -a

rm  .rvm
rm  .rvmrc

注意: RVM不是宝石,因此gem uninstall rvm会失败。
锡人

3

请注意,如果通过apt-get安装了RVM,则必须运行rvm implode或以外的步骤apt-get remove ruby-rvm才能真正卸载它。

请参阅“ 在Ubuntu上安装RVM ”。


2

如果env: ruby_executable_hooks: No such file or directory在调用某些Ruby包时仍然遇到问题,则表示RVM在您的中留下了一些礼物$PATH

运行以下命令查找有问题的脚本:

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

然后rm所有的比赛。当然,您必须使用无RVM重新安装所有这些库gem


2

对于其他尝试修复PATH变量的Shell新手

按照接受的答案中的说明进行操作后,如有必要,请检查并修改PATH变量:

env | grep PATH 

如果在任何地方看到“ rvm”,则需要弄清楚要在哪里设置PATH并进行修改。我将其设置为3个文件-因此请检查以下所有文件:

vim .bashrc  

使用dd命令删除引用rvm的文件中的行。:wq保存并退出。
source .bashrc“重新加载”

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


这是一个很好的观点。
Tin Man

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具有侵入性。


有很多尝试来解释如何在Internet上安装RVM,并且大多数都已经过时且非常错误,因为自发布以来,该应用程序已经增长了很多年。RVM的站点是有关安装,删除或使用它的信息的权威来源。因为它是灵活的工具,所以有很多页面,但是如果您遵循基本安装,您会发现它根本不是侵入性的,并且很容易管理或删除。
Tin Man

-1

我尝试了上述命令从macOS删除RVM,但是不知何故它仍显示在路径中。

这是我所做的,有效的:

$ open ~/.bash_profile

将以下内容添加到您的bash配置文件中:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

然后在终端中运行:

$ source ~/.bash_profile

它必须在某个地方初始化。grep对于您的主目录中的那些变量,几率很好,您将找到位置。在多用户安装中,它们可以位于中/env/bash_profile
锡人

我用过grep。我忘了提。道歉。
Sumi

可以编辑您的答案并进行修改以更准确地显示您的所作所为。请记住,SO与OP的即时解决方案无关,而与将来寻求解决方案的其他人的长期解决方案有关。人们会忘记这不是一个简单易懂的网站,而是要对程序员的代码进行积极的更改。
锡人
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.