如何在使用RVM时安装Ruby gems?

我设置了RVM,并用它来安装Ruby和其他一些库。 当我正在浏览像Rails这样的其他技术的各种教程和设置时,我开始对通过RVM应该做什么感到困惑,以及如何在教程中提出build议。

一个例子是这里的RubyGems教程: http : //rubygems.org/pages/download

我应该下载他们正在谈论的tar文件吗? 似乎没有必要,因为这是我认为RVM的。 我甚至需要RubyGems? 那真的是什么?

另外,我怎样才能真正获得Rails? 有没有一个精确的RVM命令来实际下载和安装Rails?

这有助于我将RVM想象成你和ruby生态系统之间的一个抽象层。

没有RVM:ruby,gem和ruby相关的二进制文件(如rake,spec,gem等)都直接安装到操作系统目录中。

使用RVM:ruby相关的东西被rvm拦截,这样ruby,gem和ruby相关的binares以一种很好,干净,有组织的方式被“安装”到〜/ .rvm目录中。 RVM位于ruby,gem和相关的二进制文件和操作系统之间。 它提供了一种在同一台机器上拥有多个ruby环境(使用不同的gem和二进制文件)的方法。

所以,无论你是否安装了rvm,你都应该能够运行这些命令,就像在网上的任何教程中一样。 换句话说,你可以“忘记”安装了RVM。 ruby生态系统应该像没有安装一样工作。

所以,是的,你将不得不运行gem install rails等。

希望有助于消除混淆。

(*)有一些小的差异。 例如:安装RVM时,不应该以sudo的方式运行命令。

我应该下载他们正在谈论的tar文件吗?

Ruby 1.9+包括gem。 RVM改装1.8+。

一般来说,除非你有足够的经验来完全理解他们希望你做什么,否则要小心你在互联网上find的任何方向,解释如何安装任何东西。 特别是,他们希望你使用sudo或者root来安装。

具体来说,在使用RVM时,您不希望使用sudo安装Ruby 或任何gem 。 RVM的工作原理是为您的开发build立一个沙盒,并依赖于您的帐户环境,修改您的path,以便任何Ruby请求转到当前select的RVMpipe理的Ruby或gem或他们安装的任何命令。 sudo会将你的正常环境推到一边,暂时replaceroot,然后安装你所要求的root权限,然后恢复到你的环境。

当你去运行这个命令或者findgem的时候,就像你一样,RVM的Ruby不能find它,因为这个文件被安装在RVM的沙箱外,或者它不能被读取或者修改,因为它被根。 不pipe实际的原因如何,最终的结果将是哭泣和咬牙切齿。

RVM不会颠覆gemfunction。 gem用来安装和pipe理Ruby gems,RVM会调整它以使用sandbox进行所有的机制。 由于RVM支持gemsets,所以你可以获得更多的function,但是gem像以往一样工作,只有它有“大哥哥”RVM控制它的世界。

不需要安装rubygems。 RVM应该已经安装了rubygems。 RVM(在我看来)对于pipe理不同的ruby安装(比如1.8.7和1.9.2)或者不同的gemsets很有用。 如果你只有一个版本的Ruby,而不关心不同的gemset,那么RVM就不是那么重要了。 如果你只想安装rails,只需使用gem install rails 。 如果您有现有的rails 3应用程序,请先gem install bundler ,然后gem install bundler bundle install以获取rails和其他gem依赖项。