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