你如何使用rvm和ree更新rubygems?

Dou*_*ers 14 ruby rubygems rvm

当ree是你的默认vm(在Snow Leopard上)时,你如何在rvm下更新rubygems?我在做:

$ rvm ree gem update --system
Run Code Online (Sandbox Code Playgroud)

这导致看起来一切都很好:

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
Run Code Online (Sandbox Code Playgroud)

但是当我运行gem --version时它仍然说1.3.5.做一个宝石指向ree版本的宝石.

任何人都知道如何使用RVM更新rubygems?

shi*_*ara 35

现在你可以这样做:

rvm rubygems latest
Run Code Online (Sandbox Code Playgroud)

或者你可以定义你真正想要的rubygems.https://rvm.io/rubies/rubygems/


Tel*_*hus 17

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

$ rvm ree gem update --system
Run Code Online (Sandbox Code Playgroud)

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

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

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

$ rvm ree
$ gem update --system
$ gem --version
Run Code Online (Sandbox Code Playgroud)