为什么“RVM - 默认”在MacOSX上对我不起作用?

时间:2011-04-09 11:54:34

标签: ruby macos rvm

使用Ruby和Rails已经有一段时间了,我想尝试RVM。一切都很好,除了一件事:

在一个刚刚打开的终端ruby指向系统的ruby,尽管我使用了rvm --default命令。

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 [ ]

致电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

我按照文档中的说明设置了.bash_profile

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

感谢您的帮助。非常感谢。

我正在使用Mac OS X Snow Leopard(10.6.6)

更新

--default似乎不适合我...

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

18 个答案:

答案 0 :(得分:45)

我曾经遇到过同样的问题。原来rvm脚本加载了两次,这打破了一些东西。

检查打开shell时加载的所有文件,例如/etc/profile~/.bashrc~/.bash_profile等等,并确保它们不会加载RVM两次。

可以在echo "Going to load RVM"之前[[ -s "/Users/user/.rvm/scripts/rvm" ]] && source "/Users/user/.rvm/scripts/rvm"~/.bash_profile以查看是否发生

答案 1 :(得分:17)

移动它:

[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"
〜/ .bash_profile底部的

解决了我的问题。

答案 2 :(得分:7)

ZSH用户的可能修复方法:

不知怎的,我有:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
<。>在.zprofile和.zshrc中。

从.zprofile中删除该行解决了该问题。 (虽然你应该能够从任何一个中删除,只要它只出现一次)

答案 3 :(得分:6)

我遇到了同样的问题。 移动线:  [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

从MacPorts出发后: export PATH=/opt/local/bin:/opt/local/sbin:$PATH

为我解决了这个问题。

答案 4 :(得分:6)

你运行了命令吗?     rvm使用--default 1.9.2?

这对我在openSUSE上有用,但我不知道雪豹。

答案 5 :(得分:5)

我遇到了同样的问题,因为我使用Oh-My-Zsh,如果我有重复的RVM调用,则跟踪起来有点困难。

我通过将调用RVM从位于\ oh-my-zsh内的\ custom文件夹中的单独rvm.zsh文件移动到我的主.zshrc文件的最末端来修复它。

看起来RVM对于在zsh初始化序列结束时不被调用非常敏感。

答案 6 :(得分:5)

而不是:

rvm use 1.9.2 --default 

我使用完整版:

rvm use ruby-1.9.2-p290 --default 

这在zsh中对我有用。

答案 7 :(得分:4)

完整性检查 - 确保您正在处理的项目具有与您尝试在.ruby-version文件中设置为默认值的ruby版本相同。

它发生在我身上,我无法弄清楚为什么rvm不使用我的默认

答案 8 :(得分:2)

我在Mac OS X 10.7上遇到了同样的问题。

后来我发现我的帐户没有添加到“rvm”组。

我将自己添加到rvm组后,我可以设置-default of rvm。

答案 9 :(得分:1)

我的问题已通过更改解决:

我的PATH=/usr/local/bin

中的

PATH=$PATH:/usr/local/bin.zshrc

source @github RVM issue queue

显然,您需要确保首先正确安装RVM,然后运行@choise建议的type rvm | head -1检查。 rvm use --default 1.9.3-p362现在正常运作。

答案 10 :(得分:0)

尝试此操作为新shell设置默认ruby:

sudo rvm alias create default 1.9.2

答案 11 :(得分:0)

我必须从〜/ .bash_profile中删除[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"行,并且必须将它移到〜/ .bashrc的最底部。

这解决了OS X 10.10.1上的问题。

答案 12 :(得分:0)

我按照上面的建议 - 检查了我的bash_profile(这很好)并且还注意到在ubuntu中你可能需要领导https://rvm.io/support/faq/#shell_login的建议

但是我仍然遇到这个问题,直到我意识到我试图运行的项目有一个.rvmrc文件,该文件指定了我没有安装的ruby版本。当我纠正这个问题时 - 我停止了问题(所以实际上并不是使用默认设置不起作用,而是这个项目覆盖了它)

答案 13 :(得分:0)

对于Mac OS上的一些新手,请使用JewelryBox,在偏好设置部分中找到

"show default ruby in system menu bar"

检查这个允许你在红宝石之间切换。

您可以通过“system @ *”选择选择预先安装的rubygems(如果您有rubygems)。

答案 14 :(得分:0)

出于某种原因,我在我的$ HOME / bin目录中有ruby,gem,rake,...文件存根。以下是一个例子。因此我的rvm --default使用1.9.3没有按预期工作。删除$ HOME / bin目录解决了这个问题。

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

答案 15 :(得分:0)

这里的pb相同。线有两次,它打破了....无论出于什么原因...... 删除无关的线解决了它

答案 16 :(得分:0)

type rvm | head -1打印出来的内容是什么?

在我的bash_profile中(在最新的osx上)我不得不放

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

我还创建了一个gemset并将其设置为默认值:

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

答案 17 :(得分:0)

您需要将路径放在路径前面的rvm

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