문제

Ok, so I decided I'd be cool and try to use Rails3 that's in beta. Then, things were getting hard to manage so I got rvm. I installed ruby 1.9.2-head in rvm and things were working, and then a computer restart later rails wouldn't start up. So I figured I'd just try running the system ruby and start rails in it. same error. Then, I uninstalled rails3 and got rails: no such file or directory type errors..

So now I'm royally screwed because rails2 is still installed but will not uninstall because of invisible dependencies, along with a lot of other random gems. How do I completely clear out all ruby gems and such so I can start anew?

도움이 되었습니까?

해결책

I've recently had to so just this. I had built up alot of cruft with my system installed ruby and gems and wanted to clean all that out and move everything over to run under rvm for various projects.

1. Clean up old and busted

First thing I did, before messing with rvm (or run rvm system to get back to the system ruby), was to remove all my gems:

gem list | cut -d" " -f1 | xargs gem uninstall -aIx

WARNING: this will uninstall all ruby gems. If you installed as root you may want to switch to root and run this.

2. Install new hotness

Now you can run gem list to see what is left.

Time to install rvm, I recomend blowing away your current install and reinstall fresh:

rm -rf $HOME/.rvm
bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Now the real trick is to use gemsets to install rails 3, and this is easy if you follow Waynee Seguin's gist:

rvm update --head
rvm install 1.8.7
rvm --create use 1.8.7@rails3
curl -L http://rvm.beginrescueend.com/gemsets/rails3b3.gems -o rails3b3.gems 
rvm gemset import rails3b3.gems

One difference is I use 1.8.7 since I have had issues with 1.9.2-head and RSpec, but 1.8.7 has been smooth.

다른 팁

You say that you already got Rails 2 and afterwards installed rvm. Try if you can remove Ruby and Rails using the package manager of your system (yum, apt, ...)

The error you got is most likely the result a link in some general place which still exists, but is pointing to the real installation directory which no longer exists.

For example: /usr/bin/ruby exists and is pointing to /usr/local/lib/ruby/1.9.2/bin/ruby which no longer exists.

Afterwards manually clean out any Ruby and Rails related paths in /usr and its subdirectories.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top