Ruby / 教程资料

极速 Ruby 环境管理工具 —— `rv` 使用指南

约 5 小时前发布

在 Ruby 开发中,管理不同项目的 Ruby 版本和依赖一直是个让人头疼的问题。现有的工具如 RVM、rbenv 等虽然功能强大,但安装 Ruby 和依赖往往需要从源码编译,速度不尽如人意。而 rv 的出现,为这个痛点提供了一个全新的解决思路。

rv 是一个用 Rust 编写的、极快的 Ruby 版本和 Gem 管理器。它的核心理念是“一体化”和“快速”,目标是将 rbenvrvmbundler 等工具的功能整合到一个命令中,并通过提供预编译的二进制文件,实现 Ruby 在“2秒内安装”的神速体验。

为什么选择 rv

  • 快如闪电:这是 rv 最突出的特点。它直接下载预编译的 Ruby 二进制包,免去了在本地编译的漫长等待,因此在 macOS 和 Linux 上安装 Ruby 只需不到2秒钟。
  • 功能整合:告别多个工具混用。rv 可以同时管理 Ruby 版本、项目依赖 (Gem)、以及全局的 CLI 工具,一个工具搞定所有。
  • 简单直接:命令设计清晰直观,没有复杂的配置和记忆负担,开箱即用。

安装 rv

rv 的安装非常简单,支持 macOS、Linux 和 Windows。

在 macOS 或 Linux 上,你可以使用 Homebrew:

brew install rv

或者使用官方安装脚本:

curl -LsSf https://rv.dev/install | sh

在 Windows 上,以管理员身份打开 PowerShell 并运行:

powershell -ExecutionPolicy Bypass -c "irm https://rv.dev/install.ps1 | iex"

Windows 用户请注意:因为 rv 是 PowerShell 中 Remove-Variable 命令的内置别名,所以在 Windows 上你需要使用 rvw 来代替 rv 执行所有命令。

核心用法速览

rv 的命令体系很清晰,这里介绍几个最常用的场景。

1. 管理项目 Ruby 版本

进入你的 Ruby 项目目录,使用 rv ruby pin 命令可以将当前的 Ruby 版本固定到项目里,并自动生成 .ruby-version 文件。

rv ruby pin 3.3.0

之后,你或你的团队成员进入项目目录时,rv 会自动检测并使用这个文件中的版本。你也可以用 rv run 来在项目环境下执行任何命令或脚本。

rv run ruby -v   # 在项目环境中查看 Ruby 版本
rv run irb       # 在项目环境中启动 IRB

2. 安装项目依赖

传统的 bundle install 需要先确保 Ruby 版本正确。在 rv 中,rv clean-install 命令是一个“一站式”解决方案。它会自动读取项目的 Gemfile.lock 文件,先安装所需的 Ruby 版本,再安装所有 Gem 依赖,一步到位。

rv clean-install

3. 直接运行 Gem 命令 (rvx)

这是 rv 最便捷的特性之一。当你想快速使用某个全局工具或创建一个新 Rails 应用时,可以直接使用 rvx 命令,它会自动准备好环境并执行。

rvx rails new myapp   # 直接运行 rails 命令创建新应用
rvx bundle install    # 相当于 bundle install

4. 管理独立的 CLI 工具

对于 rerunrake 这类你希望在全局使用但又想隔离其依赖的工具,rv 提供了 rv tool 命令。它会将工具安装在一个独立的环境中,避免污染项目依赖。

rv tool install rerun     # 在隔离环境中安装 rerun
rv tool run rerun --help  # 运行 rerun 命令

总结

rv 通过其“极速安装”和“一体化管理”的设计,给 Ruby 开发者提供了一种高效、流畅的环境管理新体验。它尤其适合以下场景:

  • 新项目初始化:用 rvx rails newrv clean-install 快速启动。
  • 持续集成 (CI):在 CI 环境中,快速安装 Ruby 和依赖能显著缩短构建时间。
  • 管理多个项目:通过 .ruby-version 和自动切换,让多版本共存变得毫无压力。

如果你已经受够了等待 Ruby 编译的过程,或者希望精简你的开发工具链,那么 rv 绝对值得一试。想了解更多高级配置和命令,可以参考它的 GitHub 仓库官方网站

加入开源交流群

请加站长微信,免费进入交流群,和开源爱好者一起讨论。

站长微信二维码