简体   繁体   中英

How to use "RVM --default" on MacOSX

After using Ruby and Rails for quite some time now, I wanted to try RVM. Everything works fine, except for one thing:

In a freshly opened Terminal ruby points to the system's ruby, despite the fact, that I used the rvm --default command.

user@terra ~ $ ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i686-darwin10]
user@terra ~ $ which ruby
/opt/local/bin/ruby
user@terra ~ $ rvm list
   ruby-1.8.7-p334 [ ]
=> ruby-1.9.2-p180 [ ]

Everything is fine after I call rvm reload

user@terra ~ $ rvm reload
user@terra ~ $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.1]
tmangner@terra ~ $ which ruby
/Users/user/.rvm/rubies/ruby-1.9.2-p180/bin/ruby

I set up my .bash_profile as described in the documentation:

[[ -s "/Users/user/.rvm/scripts/rvm" ]] && source "/Users/user/.rvm/scripts/rvm" 

That --default does not seem to work for me ...

user@terra ~ $ rvm use 1.9.2 --default
Using /Users/user/.rvm/gems/ruby-1.9.2-p180
user@terra ~ $ rvm default
user@terra ~ $

I'm using Mac OS X Snow Leopard (10.6.6)

I had the same problem once. It turned out the rvm-script got loaded twice, which broke things a bit.

Check all the files that load when you open a shell:

/etc/profile
~/.bashrc
~/.bash_profile

and so on, and make sure they don't load RVM twice.

Maybe put

echo "Going to load RVM"

before

[[ -s "/Users/user/.rvm/scripts/rvm" ]] && source "/Users/user/.rvm/scripts/rvm"

in your ~/.bash_profile to see if it happens or not.

Moving the initialization

[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"

in the bottom of ~/.bash_profile solved the problem for me.

A possible fix for ZSH users:

Somehow I had:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

in both .zprofile and .zshrc.

Removing the line from .zprofile resolved the issue. (Though you should be able to remove from either, as long as it appears just once)

Run the command:

rvm use --default 1.9.2?

This worked for me on openSUSE, I don't know about Snow Leopard though.

I had the same problem.

Moving:

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

after the line from MacPorts:

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

solved the problem for me.

I had the same problem and since I use Oh-My-Zsh it was a little bit more difficult to track if I have duplicate calls to RVM.

I fixed it by moving the call to RVM from the separate rvm.zsh file located in my \\custom folder inside \\oh-my-zsh to the very end of my main .zshrc file.

It looks like RVM is really sensitive to being called not at the end of your zsh initialization sequence.

Instead of:

rvm use 1.9.2 --default 

I used the full version:

rvm use ruby-1.9.2-p290 --default 

That worked for me in zsh.

As a sanity check, make sure that the project you are working on has the same Ruby version that you try to set as default in the .ruby-version file.

It happened to me, and I couldn't figure out why rvm doesn't use my default.

I had the same issue on Mac OS X 10.7, and later I found that my account was not added to the "rvm" group.

After I added myself to it I can set --default .

My issue was resolved by changing

PATH=/usr/local/bin

to

PATH=$PATH:/usr/local/bin

in my .zshrc file.

Obviously, you need to make sure RVM is properly installed first, and run the type rvm | head -1 type rvm | head -1 check that @choise suggested. rvm use --default 1.9.3-p362 now works properly.

See " Sometimes, CD to a dir with .rvmrc doesn't set the Ruby version or gemset " for more information.

试试这个来为新的 shell 设置默认的 Ruby:

sudo rvm alias create default 1.9.2

For some really newbies on Mac OS use JewelryBox and in preferences section you find

"show default ruby in system menu bar"

checking this allow you to switch between rubies.

You can select your pre-installed rubygems (if you have rubygems) via "system@*" choice.

I followed the suggestions above - checked my bash_profile (which was fine) and also noticed that in ubuntu you may need to head the advice of https://rvm.io/support/faq/#shell_login

However I was still having this problem until I realised that the project I was trying to run had a .rvmrc file that was specifying a version of ruby that I didn't have installed. When I corrected this - I stopped having the problem (so in fact it wasn't that the use default wasn't working, but that this project was overriding it)

I had to remove the [[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm" [[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm" line from ~/.bash_profile and had to move it to the very bottom of ~/.bashrc.

This fixed the issue on OS X 10.10.1.

您需要将 RVM 的路径放在 PATH 前面:

$ export PATH=/path/to/rvm-dir:$PATH

What does type rvm | head -1 type rvm | head -1 print out?

In my .bash_profile on the latest MacOS XI had to put:

# Ruby Version Manager
[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"

I also created a gemset and set this as default:

rvm reload
rvm install 1.9.2
rvm --create use 1.9.2@default
rvm --default use 1.9.2@default

For some reason I had in my $HOME/bin directory ruby , gem , rake , ... file stubs. Therefore my rvm --default use 1.9.3 didn't work as expected. Removing the $HOME/bin directory solved the problem.

cat  bin/ruby 
#!/usr/bin/env bash

if [[ -s "/usr/local/rvm/environments/ruby-1.9.2-p290" ]]
then
  source "/usr/local/rvm/environments/ruby-1.9.2-p290"
  exec ruby "$@"
else
  echo "ERROR: Missing RVM environment file: '/usr/local/rvm/environments/ruby-1.9.2-p290'" >&2
  exit 1
fi

same pb here. line was there twice and it broke it.... for whatever reason... removing the extraneous line solved it

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM