How can I remove RVM (Ruby Version Manager) from my system?
I am running Ubuntu 19.04 and followed all the instructions above and then some. Finally, what worked for me was to run
sudo apt autoremove rvm
and now when I try and reinstall RVM it's actually gone. RVM is invasive, to say the least.
If you're still getting a env: ruby_executable_hooks: No such file or directory
when calling some Ruby package, that means RVM left a little gift for you in your $PATH
.
Run the following to find the offending scripts:
grep '#!/usr/bin/env ruby_executable_hooks' /usr/local/bin/*
Then rm
all the matches. You'll have to reinstall all of those libraries with an RVM-free gem
, of course.
There's a simple command built-in that will pull it:
rvm implode
This will remove the rvm/
directory and all the rubies built within it. In order to remove the final trace of rvm, you need to remove the rvm gem, too:
gem uninstall rvm
If you've made modifications to your PATH
you might want to pull those, too. Check your .bashrc
, .profile
and .bash_profile
files, among other things.
You may also have an /etc/rvmrc
file, or one in your home directory ~/.rvmrc
that may need to be removed as well.
When using implode
and you see:
Psychologist intervened, cancelling implosion, crisis avoided :)
Then you may want to use --force
rvm implode --force
Then remove RVM from the following locations:
rm -rf /usr/local/rvm
sudo rm /etc/profile.d/rvm.sh
sudo rm /etc/rvmrc
sudo rm ~/.rvmrc
Check the following files and remove or comment out references to RVM:
~/.bashrc
~/.bash_profile
~/.profile
~/.zshrc
~/.zlogin
Comment-out/remove the following lines from /etc/profile:
source /etc/profile.d/sm.sh
source /etc/profile.d/rvm.sh
/etc/profile is a read-only file so use:
sudo vim /etc/profile
And after making the change write using a bang!
:w!
Finally re-login/restart your terminal.
For other shell newbies trying to fix the PATH variable
After following instructions in accepted answer, check and modify your PATH variable if necessary :
env | grep PATH
if you see "rvm" anywhere, you need to figure out where you are setting PATH and modify. I was setting it in 3 files - so check all the following files:
vim .bashrc
Delete the lines in the file referencing rvm using the dd command. :wq to save and exit.
source .bashrc
to "reload"
Repeat this process (starting with the vim command) for .profile and .bash_profile
Per RVM's troubleshooting documentation "How do I completely clean out all traces of RVM from my system, including for system wide installs?":
Here is a custom script which we name as 'cleanout-rvm'. While you can definitely use
rvm implode
as a regular user orrvmsudo rvm implode
for a system wide install, this script is useful as it steps completely outside of RVM and cleans out RVM without using RVM itself, leaving no traces.#!/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."