< 返回版块

KAY53N 发表于 2026-09-02 19:14

Tags:rsvm,rust

大家好,

我写了 rsvm

https://github.com/rsvm-sh/rsvm

它从 static.rust-lang.org 下载官方工具链,校验 SHA256,装到 ~/.rsvm/versions/ 下面。可以同时装着好几个版本;切换时只改当前这个终端PATH,别的窗口不受影响。也不会调用 rustup default

多版本

每个版本单独一个目录,互不覆盖:

~/.rsvm/versions/1.85.0/
~/.rsvm/versions/1.98.0/
~/.rsvm/versions/1.100.0-nightly-2026-08-30/

rsvm install 只往里加,不会把已经装好的删掉。rsvm list 看装了哪些。rsvm uninstall 1.85.0 只删这一个,缓存里的安装包也会清掉。正在用的版本不能删,先 rsvm use 切走再卸。

rsvm install stable
rsvm install beta
rsvm install nightly         # 目录名会带上日期
rsvm install 1.85.0

rsvm list
rsvm current
rsvm which 1.85.0
rsvm uninstall 1.85.0

stable / beta / nightly 安装时取该通道当时的最新版。rsvm alias default 1.85 表示默认用已安装的最新 1.85.x,新开终端会跟这个 default。

切换版本

rsvm use <version> 把这个版本的 bin 放到当前终端 PATH 最前面。已经打开的其他终端不会跟着变。

rsvm use stable
rustc --version

rsvm use 1.85.0
rustc --version

rsvm use system              # 当前终端不再走 rsvm,改用系统里的 rustc

不想切整个终端,只想用某个版本跑一条命令:

rsvm run 1.85.0 cargo test
rsvm-exec 1.85.0 cargo build

项目里可以放一个 .rust-version 指定版本。命令不写版本号时,rsvm installrsvm usersvm-exec -- 会从当前目录往上找最近的这个文件。

echo 1.85.0 > .rust-version
rsvm use
rsvm-exec -- cargo test

这个文件只有 rsvm 会读。Cargo 和 rust-analyzer 认的是 rust-toolchain.toml

切版本只作用于当前终端,不会改全局默认,也不会调用 rustup default

现状

  • v0.1.0,MIT
  • bash / zsh,需要 curltar
  • 暂时没有 Windows 和 fish
  • 装下来的是官方这套:rustccargorustdocstd

安装

curl -o- https://raw.githubusercontent.com/rsvm-sh/rsvm/v0.1.0/install_sh.sh | bash
source ~/.zshrc   # 或 ~/.bashrc
rsvm help

欢迎提意见、开 issue 和 PR。

仓库: https://github.com/rsvm-sh/rsvm 许可证: MIT

评论区

写评论

还没有评论

1 共 0 条评论, 1 页