rsvm:多版本 Rust 工具链

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

rsvm 是一个 Rust 工具链版本管理器,从官方下载并校验 SHA256,安装至 ~/.rsvm/versions/,支持多版本共存、切换仅影响当前终端,不调用 rustup default。提供 install、list、use、uninstall 等命令,支持 stable、beta、nightly 及指定版本,可通过 .rust-version 文件自动选择版本。当前为 v0.1.0,支持 bash/zsh,MIT 许可。

🔎

延伸解读

与 rustup 的差异

rsvm 与 rustup 不同,它不调用 rustup default,切换版本仅影响当前终端,不会改变全局默认。这意味着在多终端或团队协作中,每个终端可以独立选择工具链版本,避免相互干扰。但这也意味着新开终端默认使用系统 rustc 或 rsvm alias 指定的版本,需要用户自行管理默认版本。

版本管理机制

rsvm 将每个版本安装在独立目录,如 ~/.rsvm/versions/1.85.0/,互不覆盖。install 只添加新版本,不会删除已有版本;uninstall 只删除指定版本并清理缓存。stable、beta、nightly 安装时取该通道最新版,nightly 目录名会带日期。这种设计便于精确控制每个版本,但需要用户注意磁盘占用。

项目级版本选择

rsvm 支持通过 .rust-version 文件自动选择版本,但该文件仅 rsvm 识别,Cargo 和 rust-analyzer 使用 rust-toolchain.toml。因此,如果项目同时使用 rust-toolchain.toml,rsvm 不会自动读取,可能导致版本不一致。建议在项目根目录同时维护两个文件,或明确团队使用的工具链管理方式。

Q&A

rsvm 是什么?它有什么作用?

rsvm 是一个 Rust 工具链版本管理器,可以从官方源下载并安装多个版本的 Rust 工具链,支持版本切换,且切换只影响当前终端。

rsvm 如何安装 Rust 工具链?

rsvm 从 static.rust-lang.org 下载官方工具链,并校验 SHA256,然后安装到 ~/.rsvm/versions/ 目录下。

rsvm 支持安装哪些版本的 Rust?

rsvm 支持安装 stable、beta、nightly 以及指定版本号(如 1.85.0)。安装 stable、beta、nightly 时会获取该通道的最新版本。

如何使用 rsvm 切换 Rust 版本?

使用 `rsvm use <version>` 命令可以切换当前终端的 Rust 版本,例如 `rsvm use 1.85.0`。切换只影响当前终端,其他终端不受影响。

rsvm 如何管理多个 Rust 版本?

rsvm 将每个版本安装在独立的目录下,如 ~/.rsvm/versions/1.85.0/,互不覆盖。使用 `rsvm list` 查看已安装版本,`rsvm uninstall <version>` 删除指定版本,但正在使用的版本不能删除。

rsvm 是否支持项目级版本指定?

支持。在项目目录中放置 .rust-version 文件并写入版本号,rsvm 会自动读取该文件来选择合适的版本。但该文件仅 rsvm 识别,Cargo 和 rust-analyzer 使用 rust-toolchain.toml。

rsvm 的当前版本和系统要求是什么?

rsvm 当前版本为 v0.1.0,支持 bash 和 zsh,需要 curl 和 tar,暂不支持 Windows 和 fish。

rsvm 与 rustup 有什么区别?

rsvm 切换版本时只修改当前终端的 PATH,不会调用 rustup default,也不会改变全局默认版本。而 rustup 通常管理全局默认工具链。

🏷️

标签

➡️

继续阅读