∞RVM 最佳实践
想要按照 Wayne 和 Michal 的意图使用 RVM? 以下是一些已被证明在使用 rvm 时使开发更容易的技巧和最佳实践的集合。
∞清单
∞第 1 条 - 为每个项目使用 rvmrc 文件。
一个 特定于项目的 rvmrc 使得自动化您的常规工作流程变得容易。 它不仅可以让您在处理应用程序时自动切换 Ruby,而且还可以轻松地自动引导环境。
∞第 2 条 - 将您的 rvmrc 检入源代码控制。
通过将项目的 rvmrc 检入源代码控制,与您的应用程序一起,您可以确保所有用户在使用您的项目和 RVM 时拥有一致的环境,还可以自动执行 gemset 安装等操作。
查看 rvm 存储库或 TEDxPerth 存储库中的示例 rvmrc 文件。 您还可以通过进入项目目录来实现项目的引导,前提是您的 $HOME/.rvmrc
中有 export rvm_project_rvmrc=1
。
最重要的是,您还可以自动让您的部署设置您的特定于应用程序的环境,即使您使用的是 passenger。
∞第 3 条 - 使用每个项目的 gemsets。
每个项目的 gemsets 用于确保每个应用程序都有自己独特的 gem 环境,帮助您避免因版本冲突而产生的问题。 在大多数情况下,这涉及在选择 Ruby 时使用类似 "2.1.1@your-app" 而不是 "2.1.1"(例如,在您的 rvmrc 中)。
更棒的是,将其与第 1 条和第 2 条结合起来意味着您和任何其他用户都将自动拥有正确版本的 gemsets。 如果您使用的是 bundler,RVM 甚至会为您设置 BUNDLE_PATH,以便您的 gem 目录与 bundler 放置 gem 的位置相同。
∞第 4 步 - 尽可能使用 RVM 部署。
使用 RVM 开发是一个好主意,在可能的情况下,使用 RVM 部署应用程序也是一个好主意。这带来了特定于应用程序的环境的通常优势,但也使在开发后期在生产中追踪版本特定的错误变得更容易。这主要是因为它确保了两个环境之间具有合理的的一致性。
更棒的是,当需要升级 Ruby 版本时,RVM 可以通过“rvm upgrade”命令来帮助你。
∞第 5 步 - 将 RVM 集成到你的首选工具中。
最后,请务必阅读我们的 集成 页面,了解如何将 RVM 最好地集成到你的开发和部署生态系统中。