支持
RVM 由志愿者社区维护,请将问题报告到 RVM 问题追踪器。
如果您能提供帮助或希望成为维护者之一,请开始帮助我们。 您可以在 RVM Github 组织 中找到更多与 RVM 相关的项目。
赞助商
Carbon Ads

RVM 和 RubyGems

RVM 为每个版本的 ruby 创建一个全新的独立 gem 目录。 此外,您可以进一步分离它,并为每个项目/应用程序/沙鼠颜色设置一组 gem... 有关使用 gem 集的更多详细信息,请参阅 gemsets

不要使用 sudo...

来处理 RVM gem。 当您使用 sudo 时,您是以 root 身份运行命令,另一个用户在另一个 shell 中,因此 RVM 为您完成的所有设置在 sudo 命令运行时都会被忽略(例如 GEM_HOME 等)。 因此,重申一下,一旦您使用 'sudo',您将以 root 系统用户身份运行,这将清除您的环境,并且它创建的任何文件都无法由您的用户修改,这将导致奇怪的事情发生。(您会开始认为有人拥有您的应用程序的巫毒娃娃...)

您可以使用 gemdir 操作查看当前选定 ruby 的 gem 目录

$ rvm 2.1.1
$ rvm gemdir

/Users/rys/.rvm/gems/ruby-2.1.1

要更改为当前选定 Ruby 的 gem 目录,请使用子 shell

$ rvm 2.1.1
$ cd $(rvm gemdir)
$ pwd

/Users/rys/.rvm/gems/ruby-2.1.1

如果您经常执行此操作,可以将以下 bash 函数放入您的 ~/.bash_profile 或 ~/.zshrc 中

# Thanks for the awesome idea batasrki
function gemdir {
  if [[ -z "$1" ]] ; then
    echo "gemdir expects a parameter, which should be a valid RVM Ruby selector"
  else
    rvm "$1"
    cd $(rvm gemdir)
    pwd
  fi
}

然后,可以按如下方式切换到各个 RVM Ruby gem 目录。

$ gemdir 2.1.1

/Users/rys/.rvm/gems/ruby-2.1.1

$ pwd

/Users/rys/.rvm/gems/ruby-2.1.1

RubyGems CLI API

RVM 现在提供了一个 'rubygems' CLI 命令,允许您更改已安装解释器的 rubygems 版本。 为了安装 RVM 所知的最新 RubyGems,您可以执行以下操作

$ rvm rubygems current

如果发布了比 RVM 所知的版本更新的 rubygems 版本,那么您应该获取最新版本的 RVM,最新的 git 头部将是最好的,以便能够安装更新的版本,因为它们的下载 URL 会针对每个版本而改变/不一致(rubyforge 方案)。

为了安装特定版本的 rubygems,您可以直接指定版本。例如,如果您想安装 RubyGems 版本 1.5.2,您可以按照以下步骤操作。

$ rvm rubygems 1.5.2

对于 MRI 1.9.X+,RubyGems 版本是内置的。如果您通过 'rvm rubygems' API 安装了不同的 RubyGems,并决定恢复到内置版本,则可以运行以下命令删除安装的版本。

$ rvm rubygems remove

相同 Ruby 版本,不同 RubyGem 版本

RubyGem 版本与 Ruby 版本绑定。同一 Ruby 版本不能同时存在两个不同版本的 RubyGems。但有时您可能希望将两个或多个不同版本的 RubyGems 绑定到同一版本的 Ruby。

为了实现这一点,我们需要安装相同版本的 Ruby,但使用不同的 名称。

$ rvm install ree -n rg152
$ rvm use ree-rg152
$ gem --version
1.8.10
$ rvm rubygems 1.5.2
 ...
$ gem --version
1.5.2