我设置了RVM并用它来安装Ruby和其他一些库。当我正在浏览Rails等其他技术的各种教程和设置时,我开始对通过RVM做什么以及我应该按照教程建议做什么感到困惑。
一个例子是RubyGems教程: http://rubygems.org/pages/download
我应该下载他们正在谈论的tar文件吗?似乎不必要,因为这是我认为RVM的用途。我甚至需要RubyGems吗?真的是什么?
另外,我如何实际获得Rails?是否有精确的RVM命令来实际下载和安装Rails?
答案 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依赖项。