介绍
Ruby on Rails 或 RoR 是一种流行的 Ruby 编程语言开发框架,可让您轻松启动应用程序并以最少的麻烦运行。
开发应用程序经常需要您模拟不同的环境。 不同的项目可能需要不同版本的 Ruby。 对于传统安装,这将阻碍您的灵活性。
幸运的是,更广为人知的 RVM Ruby 版本管理器允许您轻松安装多个包含的 Ruby 版本并在它们之间轻松切换。
在其他文章中,我们介绍了如何在各种平台上安装 RVM:
本文将假设您已经安装了 RVM。 我们将讨论此实用程序的基本用法以及如何正确管理 Ruby 环境。
基本语法
如果您已经安装了 RVM,您应该可以使用 rvm
命令。 这就是我们所说的 RVM。
该命令的基本语法是:
rvm command_options命令ruby_to_act_on
还有一些 RVM 标志可以改变 RVM 的行为,这些标志的给出方式与命令选项类似。
您可以通过键入以下内容获取可用命令的列表:
rvm help
如果您需要特定命令的帮助,可以在“帮助”之后引用它以获得更详细的说明:
rvm 帮助命令
如何启用选项卡完成
我们将通过在我们的 .bashrc
文件中放入以下行来启用 RVM 选项卡完成:
[[ -r $rvm_path/scripts/completion ]] && . $rvm_path/scripts/completion
这将允许我们在输入部分命令后键入两次 TAB 键来完成 RVM 命令。 例如,我们可以输入:
rvm inst
此时,我们可以按两次TAB,它会完成:
rvm install
然后我们可以完成输入参数。
请记住,这也适用于参数。 如果你要切换到另一个 Ruby 版本,你可以输入:
rvm use
键入空格然后按两次 TAB 后,您将看到可用 Ruby 版本的列表。
如何安装和卸载红宝石
我们可以使用这个命令列出所有可以安装的红宝石:
rvm list known
选择要安装的 Ruby 后,可以发出以下命令:
rvm 安装ruby_version
如果您想卸载某个 Ruby 版本,只需键入:
rvm 卸载ruby_version
如何切换红宝石
一旦你安装了几个版本的 Ruby,你可以用这个命令列出它们:
rvm list
rvm rubies =* ruby-2.0.0-p247 [ x86_64 ] # => - current # =* - current && default # * - default
如您所见,RVM 为您提供了一个方便的指南,告诉您哪些是当前和默认的 Ruby 版本。 在这种情况下,它们是相同的。
通过键入以下命令切换到不同的 Ruby:
rvm 使用ruby_version
使用 --default
标志设置要使用的默认 Ruby:
rvm --默认使用ruby_version
要切换到默认 Ruby,请键入:
rvm default
为了使用系统上安装的 Ruby 版本(不是通过 RVM),您可以指定:
rvm use system
如何使用宝石
在 Ruby 中分发代码的一种常见方法是使用一种称为 gems
的格式。 可以安装 Gem 以扩展核心 Ruby 发行版的功能,并且通常需要安装 gem 才能使某些程序正常运行。
为了与 RVM 提供包含 Ruby 环境的使命保持一致,还可以安装仅与单个 Ruby 安装相关联的 gem。 RVM 将此功能称为 gemsets。
这意味着您可以拥有同一个 gem 的两个不同版本,或者您可以让 gem 不知道系统上的其他 gem。
要查看当前 Ruby 的可用 gemset,您可以键入:
rvm gemset list
如果您安装了多个 Ruby 版本,您可以通过键入以下命令查看所有 gemset:
rvm gemset list_all
默认情况下,您应该配置两个 gemset:
- default:如果没有指定其他 gemset,则应用 gemset。
- global:这个 gemset 被所有其他使用的 gemset 继承。 这个集合一般不需要选择,因为它会自动包含在内。 您应该在此处安装共享 gem。
您可以轻松创建另一个 gemset。 我们将创建一个名为“test_project”的 gemset 来演示它是如何工作的:
rvm gemset create test_project
如果您希望将当前 gemset 复制到新 gemset 以运行一些测试,您可以发出以下命令:
rvm gemset copy default test_project
我们可以更改我们希望使用的 gemset:
rvm gemset use test_project
我们还可以一次更改 Ruby 版本和 gemset。 这是在 Ruby 版本中完成的,后跟“@”字符,然后指定 gemset:
rvm use 2.0.0@test_project
现在,我们可以通过发出以下命令来安装井字游戏 gem:
gem install tictactoe -v 0.0.4
我们现在可以更改为我们的默认 gemset 并安装相同 gem 的早期版本:
rvm gemset use default gem install tictactoe -v 0.0.3
我们现在安装了两个独立版本的井字游戏 gem,我们可以通过切换我们正在使用的 gemset 来独立测试它们。
如果您对当前正在使用的 gemset 感到困惑,此命令将打印当前活动的 gemset:
rvm gemset name
当您使用完 gemset 后,可能是因为您的测试已经完成,您可以通过发出以下命令来摆脱它:
rvm gemset delete test_project
如何配置默认值
RVM 可以在几个不同的级别上配置默认值。 RVM 将其默认设置保存在此处的文件中:
nano ~/.rvm/config/db
如果您没有给出具体的指示,您可以看到 RVM 将使用什么。
注意:您不应编辑此文件。 升级 RVM 时会覆盖它。
如果你想覆盖这些设置,你可以在一个单独的文件中这样做:
nano ~/.rvm/user/db
为方便使用,您可以将config/db
文件中的参数复制出来,放到user/db
文件中,方便修改。
如何自动化您的环境
您可以通过在项目目录中创建 .rvmrc
文件来创建特定于项目的配置,以指定要使用的 Ruby 版本和 gemset。
这消除了手动跟踪您激活的 ruby 版本的需要。
要创建特定于项目的环境,只需在项目的顶级目录中创建一个 .rvmrc
文件:
nano .rvmrc
在里面,你只需要输入“rvm”,然后是 Ruby 版本,“@”符号,然后是 gemset:
rvm ruby_version @ gemset
这就是你所需要的。 第一次进入目录时,您可能必须接受配置。
确保您已创建 gemset 并安装了您指定的 Ruby 版本,否则当您切换到该目录时,系统会提示您安装和创建必要的组件。
您还可以在同一文件中包含任何类型的项目特定 RVM 配置。
如何更新 RVM
当 RVM 推出新版本时,您可以从实用程序中轻松更新您的安装。
只需发出以下命令:
rvm get stable
然后 RVM 将获取并安装最新版本,然后重新加载环境。 如果您将它们放置在 config/db
而不是 user/db
中,这就是您的配置将被清除的地方。
如果你想升级到最新的可用版本(不一定是稳定的),你可以输入:
rvm get head
结论
如您所见,RVM 是一种多功能工具,可用于管理项目和整个 Ruby 环境。 您可以使用 RVM 配置开发条件、服务器安装,甚至部署您的应用程序。
如果您经常使用 Ruby,那么学习如何使用 RVM 构建个性化的 Ruby 环境是非常值得的。 它可以帮助加快您的初始设置,并可以帮助您避免犯下代价高昂的错误。