Rust
Rust/cargo 可以安装,其底层使用 rustup。若尚未安装,mise 会安装 rustup,并安装所请求的工具链、组件和目标。默认情况下,mise 会使用 RUSTUP_HOME 和 CARGO_HOME 环境变量作为主目录;如果未设置,则回退到其标准位置(~/.rustup 和 ~/.cargo)。 如果你希望将 mise 的 rustup/cargo 与其他 rustup/cargo 安装隔离,可以通过设置 MISE_RUSTUP_HOME 和 MISE_CARGO_HOME 环境变量来更改此设置。
这些变量也可以在 mise 配置中设置。它们会应用于同一次 mise 调用中的 Rust 操作:
[env]
MISE_RUSTUP_HOME = "{{env.HOME}}/.local/share/rustup"
MISE_CARGO_HOME = "{{env.HOME}}/.local/share/cargo"[env] 中显式设置的 RUSTUP_HOME 和 CARGO_HOME 值优先于对应的 MISE_ 变量。
当标准 Rust 主目录尚未初始化且未配置主目录覆盖时,mise 也可以复用由软件包管理器安装的 rustup。原始的 PATH 必须包含一个目录,其中有由 Homebrew、APT 和 pacman 等软件包管理器提供的 rustup、cargo 和 rustc 代理程序。显式设置 Rust 或 Cargo 主目录后,mise 将继续使用其管理的 rustup 初始化,而不是外部代理目录。
与大多数工具不同,这些工具不会存在于 ~/.local/share/mise/installs 中,因为它们由 rustup 管理。mise 会在那里保留一个用于安装跟踪的符号链接,将 RUSTUP_TOOLCHAIN 环境变量设置为所请求的版本,并在运行 mise install 时要求 rustup 安装任何已配置的组件或目标。
用法
使用最新稳定版的 rust:
mise use -g rust
cargo build使用最新 beta 版的 rust:
mise use -g rust@beta
cargo build使用滚动 nightly 通道:
mise use -g rust@nightly
cargo build配置仍然是 nightly,而 mise 会将当前 Rust 通道清单解析为具体的 nightly-YYYY-MM-DD 工具链,以用于安装和锁定文件。这会使配置的通道保持滚动更新,同时让锁定安装具有可复现性。运行 mise upgrade rust 或 mise lock --bump 以推进锁定的 nightly。
如果要改为保留特定的 nightly,请显式配置其日期:
mise use -g rust@nightly-2026-08-13显式指定日期的 nightly 是精确固定版本。使用 --bump 的命令(例如 mise upgrade --bump rust)可以将该固定版本替换为当前 nightly。
使用特定版本的 rust:
mise use -g [email protected]
cargo build工具选项
以下 tool-options 适用于 rust 后端——这些 内容放在 mise.toml 的 [tools] 中。
install_env
为 rustup 安装命令设置环境变量:
[tools]
rust = { version = "latest", install_env = { RUSTUP_DIST_SERVER = "https://static.rust-lang.org" } }components
components 选项允许你指定要安装的组件。可以将多个组件指定为数组,或使用逗号分隔。可用组件的集合可能因不同的发行版本和工具链而异。请查阅 Rust 文档以获取最新的组件列表。
[tools]
"rust" = { version = "1.83.0", components = ["rust-src", "llvm-tools"] }如果 Rust 工具链已经安装,mise install 仍会添加任何缺失的已配置组件。
profile
profile 选项允许你指定要安装的发布类型。支持以下值:
minimal:包含尽可能少的组件,以获得一个可工作的编译器(rustc、rust-std和cargo)default:包含 minimal 配置文件中的所有组件,并额外添加rust-docs、rustfmt和clippycomplete:包含通过rustup可用的所有组件。不应使用此项,因为它包含元数据中曾经出现过的每一个组件,因此几乎总会失败。
如果未设置,则默认为 rustup 中配置的 profile。你可以通过运行 rustup show profile 来查看当前默认值。
[tools]
"rust" = { version = "1.83.0", profile = "minimal" }targets
targets 选项允许你指定要为交叉编译安装的平台列表。可以将多个目标指定为数组,或使用逗号分隔。
[tools]
"rust" = {
version = "1.83.0",
targets = ["wasm32-unknown-unknown", "thumbv2-none-eabi"],
}如果 Rust 工具链已经安装,mise install 仍会添加任何缺失的已配置目标。
设置
rust.cargo_home
- Type:
string(optional) - Env:
MISE_CARGO_HOME - Default:
None
Path to the cargo home directory. Defaults to ~/.cargo or %USERPROFILE%\.cargo
rust.default_host
- Type:
string(optional) - Env:
MISE_RUST_DEFAULT_HOST - Default:
None
Default host triple to pass to rustup init via --default-host.
rust.rustup_home
- Type:
string(optional) - Env:
MISE_RUSTUP_HOME - Default:
None
Path to the rustup home directory. Defaults to ~/.rustup or %USERPROFILE%\.rustup