误解
虽然 RVM 代表“Ruby enVironment Manager”,但很多人似乎不清楚 RVM 的用途范围以及它如何融入开发和部署生态系统。 本页面旨在消除这些误解,并提供我们的观点。 顺便说一下,是的,RVM 最初代表“Ruby Version Manager”,但它被改为“Ruby enVironment Manager”,因为它处理的不仅仅是 Ruby 本身。
误解 #1:RVM 仅用于管理 ruby 版本
虽然 RVM 代表“Ruby enVironment Manager”,但它远不止于此。 事实上,当您将 RVM 视为一个工具集合,用于处理与 Ruby 开发相关的许多常见任务时,它就更加有用。
除了提供多个 ruby 版本之外,它还提供 gemsets(允许您在 gem 方面将不同的项目分开,即使它们可能不兼容,也可以使用多个版本的 gem - 例如 Rails 2 和 Rails 3),以及以下内容:
- 在您更改目录时自动切换您的 gemset/ruby 版本
- 设置常见依赖项(通过包)
- 为给定项目提供一致的 ruby 环境
- 让您构建自定义 ruby/使用自定义补丁构建 ruby
- 为给定 ruby 提供一致的接口
- 编写常见行为的脚本
- 简化/自动化 ruby 和 gem 的设置
更重要的是,它提供了一个接口,用于处理跨所有平台一致的 ruby 版本。
误解 #2:RVM 仅适用于 {OSX,Linux,您的操作系统}
RVM 旨在运行在任何基于 POSIX 工具的 *nix 系统上。 如果 RVM 在您选择的 POSIX 兼容系统上无法运行(最低要求是构建 ruby、curl 和 Bash 所需的工具),那么您就发现了错误 - 请通过 [打开问题](https://github.com/rvm/rvm/issues) 告知我们。
误解 #3:RVM 仅适用于 Bash
RVM 目前设计为与任何提供 Bash 中基本功能的 shell 一起使用 - 即,预计支持数组、[[-style 测试等。 这意味着它应该适用于任何提供 Bash 功能超集的 shell。
如果您的 shell 不能与 RVM 配合使用,而它应该可以(例如,它不是 csh/ksh/其他非 sh 类 shell),请告知我们。目前,它不符合 POSIX sh 标准。但是,未来计划引入对它的支持。
误解 #4:RVM 仅用于开发
我们听到的最常见的误解之一是 RVM“仅用于开发”。实际上,RVM 最初是为服务器环境构建的,非常适合这种用途。它不仅包含可以轻松自动化的工具,使设置 ruby/gem 变得高效,而且还意味着您可以从开发、测试到生产拥有一致的环境。
更重要的是,RVM 允许您在需要时轻松升级 Ruby 版本,例如安全更新。同样重要的是,它使自动化任务变得高效。
最后,对于那些在测试环境中的人来说,RVM 使针对多个 ruby 版本运行测试变得非常高效。在持续集成中,RVM 是管理 ruby 的完美选择。
误解 #5:Wayne 是个机器人/Wayne 其实是蝙蝠侠
我们既不确认也不否认这些说法。