使用RVM时如何安装Ruby gem?

时间:2011-04-22 17:43:57

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems rvm

我设置了RVM并用它来安装Ruby和其他一些库。当我正在浏览Rails等其他技术的各种教程和设置时,我开始对通过RVM做什么以及我应该按照教程建议做什么感到困惑。

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

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

另外,我如何实际获得Rails?是否有精确的RVM命令来实际下载和安装Rails?

3 个答案:

答案 0 :(得分:49)

这有助于我将RVM视为您与红宝石生态系统之间的抽象层。

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

使用RVM:rvm截获ruby相关内容,以便将ruby,gem和ruby相关binares以一种漂亮,干净,有条理的方式“安装”到〜/ .rvm目录中。 RVM位于ruby,gem和相关二进制文件与操作系统之间。它提供了在同一台机器上拥有多个ruby环境(具有不同的gem和二进制文件)的方法。

因此,无论您是否安装了rvm,您都应该能够像在Web上的任何教程中一样运行几乎完全(*)的命令。换句话说,您可以“忘记”安装RVM;红宝石生态系统应该像没有安装一样工作。

所以,是的,你必须运行gem install rails等等。

希望有助于消除困惑。

(*)有一些小的差异。例如:安装RVM时,不应将命令作为sudo运行。

答案 1 :(得分:11)

  

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

没有。 Ruby 1.9+包括宝石。 RVM将其改装为1.8+。

一般情况下,请注意您在互联网上找到的解释如何安装任何内容的任何指示,除非您有足够的经验来完全理解他们希望您做什么。特别是,只要他们希望您使用sudo或root用户安装内容。

具体来说,在使用RVM时,您不希望使用sudo来安装Ruby,or any gem。 RVM的工作原理是为您的开发设置一个沙箱,并依赖于您的帐户环境,修改您的路径,以便任何Ruby请求转到当前选定的RVM管理的Ruby或Gems或他们安装的任何命令。 sudo将您的正常环境推向一边,暂时替换root,安装您要求它执行root权限的任何内容,然后恢复到您的环境。

当你去运行命令,或者像你一样找到gem时,RVM的Ruby找不到它,因为该文件安装在RVM的沙箱之外,或者它无法读取或修改,因为它由root拥有。无论实际原因是什么,最终的结果都是哭泣和咬牙切齿。

RVM不会破坏gem功能。 gem用于安装和管理Ruby gems,RVM调整它以使用沙箱进行所有阴谋。由于RVM支持gemsets,你可以获得额外的功能,但是gem一如既往地工作,只有它有“大哥”,RVM,控制它的世界。

答案 2 :(得分:4)

无需安装rubygems。 RVM应该已经安装了rubygems。 RVM(在我看来)对于管理不同的ruby安装(比如1.8.7和1.9.2)或不同的gemsets非常有用。如果你只有一个版本的ruby并且不关心不同的gemsets,那么RVM实际上并没有那么大的变化。如果您只想安装rails,只需使用gem install rails即可。如果您有一个现有的rails 3应用程序,请首先安装bundler gem install bundler然后bundle install以获取rails和其他gem依赖项。

相关问题