15

当 ree 是您的默认虚拟机(在 Snow Leopard 上)时,如何在 rvm 下更新 ruby​​gems?我在做:

$ rvm ree gem update --system

这导致看起来一切正常:

Updating RubyGems
Updating rubygems-update
Successfully installed rubygems-update-1.3.7
Updating RubyGems to 1.3.7
Installing RubyGems 1.3.7
RubyGems 1.3.7 installed

[...]

RubyGems installed the following executables:
        /Users/douglassellers/.rvm/rubies/ree-1.8.7-2010.02/bin/gem

但是当我运行 gem --version 时,它仍然显示 1.3.5。执行 which gem 指向 gem 的 ree 版本。

有人知道如何让 ruby​​gems 用 RVM 更新吗?

4

4 回答 4

36

现在你可以这样做:

rvm rubygems latest

或者您可以定义您真正想要的红宝石。https://rvm.io/rubies/rubygems/

于 2011-09-12T07:15:36.423 回答
18

我认为问题在于初始命令(或您期望该命令执行的操作):

$ rvm ree gem update --system

这告诉 rvm 将 传递gem update --systemgemunder ree,但它不会将您切换到那个特定的 Ruby 解释器。您继续使用您在该 shell 中设置的任何解释器(无论是默认情况下还是因为您在 shell 会话的早期手动切换)。

例如,我的默认解释器是 Ruby 1.9.2。如果我通过这个命令: rvm 1.9.1 gem install pony,那么 Pony gem 会为 Ruby 1.9.1 安装。但是,安装完成后,我仍在使用Ruby 1.9.2。如果我输入irb并尝试require 'pony',我会收到加载错误。如果我运行rvm 1.9.1然后输入irb,则 Pony 已安装并加载正常。

因此,正如 Brian 在他对您的帖子的评论中所说,您可以使用rvm use ree. 或者,您可以将初始命令切换为:

$ rvm ree
$ gem update --system
$ gem --version
于 2010-08-21T11:05:45.597 回答
2

rvm 建议我使用这样的东西:

rvm ruby-1.9.3-p327@mygemset do gem update --system
于 2013-04-09T12:07:21.023 回答
1

这是一个不寻常的问题。如果还没有解决,考虑使用

rvm --default use ree
which ruby
which gem

如果您使用的是正确的版本,这应该会告诉您。
使用 rvm 或直接安装 gems。

于 2011-01-15T16:52:18.510 回答