3

I've been trying to upgrade my rails environment on my MacBook and I've messed something up, but I'm not sure what. Is it possible to completely remove RVM, Ruby and Rails and start from scratch? I'm quite confused at how this is all supposed to work.

I've currently got Ruby 1.8.7 and 1.9.2 installed via RVM. I had rails upgraded to 3.0.9 but it refuses to work now, citing some error with rake.

/Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in to_specs': Could not find rails (>= 0) amongst [rake-0.8.7, rake-0.8.7, rubygems-update-1.8.5] (Gem::LoadError) from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:into_spec' from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:1182:in gem' from /Users/Moshe/.rvm/rubies/ruby-1.9.2-p180/bin/rails:18:in'

What can I do to fix the situation? I'd like to revert to the version of ruby that came with my Mac.

(Edit: I'm on Snow Leopard 10.6.8)

Edit2:

I've now gotten rvm to run ruby 1.9.2 and rails 3.0.9 However, trying to boot the server using rails server returns the following:

AppMachineMobile:hello Moshe$ rails server

=> Booting WEBrick

=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000

=> Call with -d to detach

=> Ctrl-C to shutdown server

Exiting

/Users/Moshe/Development/Ruby/hello/config/initializers/new_rails_defaults.rb:14: undefined method `generate_best_match=' for ActionDispatch::Routing:Module (NoMethodError)

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'

from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:235:in `load'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:201

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:200:in `each'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/engine.rb:200

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `instance_exec'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:25:in `run'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:50:in `run_initializers'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `each'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/initializable.rb:49:in `run_initializers'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:134:in `initialize!'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `send'

from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'

from /Users/Moshe/Development/Ruby/hello/config/environment.rb:5

from /Users/Moshe/Development/Ruby/hello/config.ru:3:in `require'

from /Users/Moshe/Development/Ruby/hello/config.ru:3

from /Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:in `instance_eval'

from /Library/Ruby/Gems/1.8/gems/rack-1.2.3/lib/rack/builder.rb:46:in `initialize'

from /Users/Moshe/Development/Ruby/hello/config.ru:1:in `new'

from /Users/Moshe/Development/Ruby/hello/config.ru:1

Moshe
  • 55,729
  • 73
  • 263
  • 420
  • Will that remove rubies installed by rvm? What about the stock ruby install? – Moshe Jul 06 '11 at 18:55
  • As I understand it will remove all ruby versions installed by rvm along with gems. Original ruby coming with Max OSX can't be removed so easily. – Victor Moroz Jul 06 '11 at 18:58
  • 1
    Check out this answer: http://stackoverflow.com/questions/3558656/how-to-remove-rvm-ruby-version-manager-from-my-system/3558763#3558763 – Brian Jul 06 '11 at 18:59
  • @Brian - Removing Ruby according to that answer removes rvm but now I can't access the default ruby! – Moshe Jul 06 '11 at 19:09
  • Does `/usr/bin/ruby` exist on your system? If so, perhaps your `$PATH` variable needs to be updated? – Brian Jul 06 '11 at 19:34
  • using `sudo cd ./usr/bin/ruby` returns that the folder does not exist. – Moshe Jul 06 '11 at 19:42

5 Answers5

3

I would try to start from scratch. Check which rvms you have installed:

$rvm list

and you should get something like this:

rvm rubies

   jruby-1.5.5 [ x86_64-java ]
   ree-1.8.7-2010.02 [ x86_64 ]
   ruby-1.8.6-p399 [ x86_64 ]
   ruby-1.8.7-p299 [ x86_64 ]
=> ruby-1.8.7-p302 [ x86_64 ]
   ruby-1.9.2-p0 [ x86_64 ]

Do a rvm uninstall on each piece:

$rvm uninstall 1.8.7
$rvm uninstall 1.9.2

Install Ruby 1.8.7:

$ rvm install 1.8.7

Install latest Ruby 1.9.2:

$ rvm install 1.9.2

Set your default (or 1.8.7 if u want that):

$ rvm use 1.9.2 --default

Install PostgreSQL and SQLite gems (assume snow leopard):

$ env ARCHFLAGS="-arch x86_64" gem install pg sqlite3-ruby

Install Rails 3 (includes Bundler):

$ gem install rails

If you are in a rails 2x project:

$rvm use 1.8.7

If you are in a rails 3 project:

$rvm use 1.9.2

When you are in each rvm, load the gems associated to the project via 'bundle install' if you are using bundler, or 'rake gems:install' if you have everything dumped into your environment.rb

Chris Barretto
  • 8,761
  • 3
  • 39
  • 45
  • You can sudo it if you don't have your permissions set up. It would default into your stock ruby directory if it doesn't have permssion. – Chris Barretto Jul 06 '11 at 19:38
  • If you have rvm properly installed, it shouldn't go into your stock directory anymore. So remove all rvm traces with uninstall and 'rm -rf .rvm .rvmrc' before starting over – Chris Barretto Jul 06 '11 at 19:42
  • I now have working rails, but trying to run the server crashes with something along the lines of `undefined method `generate_best_match='` – Moshe Jul 06 '11 at 20:18
  • your intializer: new_rails_defaults.rb that has a line that looks like: ActionController::Routing.generate_best_match = false. You can remove it if you are on rails 3 (in /config/initializers/new_rails_defaults.rb) – Chris Barretto Jul 06 '11 at 20:33
  • I actually generated the project on an older version of rails. That was the problem. – Moshe Jul 06 '11 at 20:49
2
rm -rf .rvm .rvmrc

then delete the .rvmrc files in your project directory if you want to be sure you start from scratch.

Unless you have installed a system wide ruby besides installing one via rvm you dont have a "ruby" command any more, until you reinstall rvm again.

So:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

to reinstall rvm. Now everything should be back to default install.

Björn Nilsson
  • 3,514
  • 1
  • 20
  • 28
0

I did not remove any .rvm and .rvmrc file. But my problem has been solved. I dont know how it has been solved. But what step I did, I am telling you. First I used unstable version of rails gem in my Gemfile. That why problem is happening.

gem 'rails', :path => '/home/user/life/rails'  #this is an unstable rails 4.0.0 beta

 #gem 'rails', '3.2.8' 

user@sandip:~/life/samplelogin$ rails c
/home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [activerecord-deprecated_finders-0.0.1, arel-3.0.2, atomic-1.0.1, builder-3.1.4, bundler-1.2.3, bundler-1.2.3, erubis-2.7.0, hike-1.2.1, i18n-0.6.1, json-1.7.5, mail-2.5.3, mime-types-1.19, minitest-4.3.3, multi_json-1.5.0, mysql2-0.3.11, polyglot-0.3.3, rack-1.4.1, rack-test-0.6.2, rake-10.0.3, rake-0.9.2, rdoc-3.12, sprockets-2.8.2, sprockets-rails-2.0.0.rc1, thor-0.16.0, thread_safe-0.1.0, tilt-1.3.3, treetop-1.4.12, tzinfo-0.3.35] (Gem::LoadError)
    from /home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /home/user/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
    from /home/user/.rvm/gems/ruby-1.9.3-p362/bin/rails:18:in `<main>'

Then next step what i did, I just comment the gem from local folder.

 #gem 'rails', :path => '/home/user/life/rails'  #this is an unstable rails 4.0.0 beta'

gem 'rails', '3.2.8'

Then run the bundle install

then do

user@sandip:~/life/samplelogin$ rails c
Loading development environment (Rails 3.2.8)
1.9.3p362 :001 >
Sandip Mondal
  • 911
  • 7
  • 12
0

this might be helpful:

http://blog.parsalabs.com/blog/2013/08/27/setting-up-a-ruby-on-rails-4-development-environment-on-a-clean-mac-os-x-installation/

rbenv is an awesome tool to manage your rubies.

Pouya
  • 1,867
  • 3
  • 17
  • 16
0

Before you start again, take a look at RBENV as an alternative to RVM. Its a lot cleaner and easier to use.

Neil
  • 41
  • 4