Dave
Dave

Reputation: 11862

RVM,Gemset, Bash on MacOSX - what have I done during my upgrade?

Every time I open a new terminal in Mac OSX Lion, rails isn't loaded. This is after I upgraded to ruby 1.9.3 and rails 3.2 - so I was doing a lot of configuring but not sure what I've screwed up. It used to work fine.

If I load a new terminal on startup, and type:

rvm

that works.

If I type

ruby -v

I get the correct (1.9.3)

but if I type rails -v, I get an error saying:

/Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [rake-0.9.2.2, rake-0.9.2] (Gem::LoadError)
    from /Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /Users/userishere/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems.rb:1208:in `gem'
    from /usr/bin/rails:18:in `<main>'

If I type:

   rvm use 1.9.3p0@rails32 --default

That makes rails work as normal, but only in that terminal window -even a new tab in terminal, rails gives errors - how do I get it to accept that gemset/config as the global default whenever I start up? I have:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

in my .bash_profile.

What have I done to my config / missed in my upgrade? It seems like something simple, but I'm not spotting it.

Upvotes: 2

Views: 384

Answers (2)

Dave
Dave

Reputation: 11862

rvm 1.9.3-p0@rails32 --default only set it working for the current terminal window, once I added another or exited and came back it was back to not working.

I fixed this by adding a .rvmrc file to my app directory. It now loads the gemset & ruby version correctly.

As per: http://seanbehan.com/mac-os-x/installing-and-using-rvm-on-mac-os-x-creating-gemsets-and-reverting-to-original-environment/

Upvotes: 1

nzifnab
nzifnab

Reputation: 16092

I just switched my own default rvm by using the command rvm 1.9.2-p290@mybranch --default (not that I didn't have 'use' in the command)

Then, if you open a new terminal window or tab and type rvm list you should see a => next to the ruby version it's using. I see this:

   ree-1.8.7-2010.02 [ x86_64 ]
   ruby-1.8.7-p302 [ x86_64 ]
   ruby-1.9.1-p378 [ x86_64 ]
   ruby-1.9.2-p0 [ x86_64 ]
   ruby-1.9.2-p136 [ x86_64 ]
   ruby-1.9.2-p180 [ x86_64 ]
=> ruby-1.9.2-p290 [ x86_64 ]

I like to see which rvm version and gemset I'm using next to my command prompt. In your .bash_profile right before the line you listed that loads the RVM function, add this:

PS1="\$(~/.rvm/bin/rvm-prompt i v g s) $PS1"

Which prepends this to my prompt: ruby-1.9.2@myapp

Upvotes: 1

Related Questions