用 rustup 管理版本与工具链
本教程共 78 篇 · 第 3 篇 · 更新于 2026-08-08 · 约 7 分钟阅读
本节目标:理解 rustup 怎么管理多个 Rust 版本和组件,学会切换默认工具链、安装 nightly、添加代码格式化与检查工具。
装完 Rust 后,你手里其实是一个”工具链”——编译器、标准库、文档、包管理器打包在一起。rustup 就是管这套东西的管家。很多初学者装完就再没动过 rustup,其实它有几个很实用的本事,提前了解一下,以后遇到版本问题不慌。
3-1 三个发布通道(channel)
Rust 的更新走三个通道,理解它们能帮你判断该装哪个:
- stable(稳定版):每 6 周从 beta 晋升一次,经过充分测试,保证向后兼容。日常开发用这个,本教程也是基于 stable。
- beta(测试版):stable 的候选,提前 6 周放出,给生态库作者提前适配。你基本用不到。
- nightly(每夜版):每天自动构建,包含最新实验特性。有些前沿功能(比如某些还没定稿的语法)只在 nightly 才有。普通学习不需要它。
Note为什么叫”每夜版”?因为它每晚都从代码仓库自动编一个版本出来,所以可能今天能编明天就改了。新手别碰,除非明确需要某个实验特性。
3-2 查看和切换默认工具链
看看你现在装了哪些、当前用的是哪个:
rustup show
输出类似:
Default host: x86_64-pc-windows-msvc
stable-x86_64-pc-windows-msvc (default)
想把默认改成 nightly(假设你装了),可以:
rustup default nightly
想切回稳定版:
rustup default stable
也可以针对某个具体项目临时用别的版本,在项目目录里执行 rustup override set nightly,只对那个目录生效。这对”老项目锁在某个版本”很有用。
3-3 安装和卸载指定工具链
比如你想额外装一个 nightly:
rustup toolchain install nightly
不需要了就卸掉:
rustup toolchain uninstall nightly
你还能一次装多个,并指定具体版本号,例如 rustup toolchain install 1.97.1。在团队协作用统一版本时,这种精确锁定很关键。
3-4 组件(component)是什么
光有编译器还不够,Rust 官方还提供几个配套小工具,叫组件。最常用的两个:
- rustfmt:代码格式化工具,一条命令把你的代码排得整整齐齐,符合官方风格。
- clippy:代码” lint “检查器,比编译器更严格,会提醒你”这里写法不地道""那里有更优写法”。
它们默认不一定装全。手动添加:
rustup component add rustfmt
rustup component add clippy
用的时候分别跑 cargo fmt 和 cargo clippy(这两个是 cargo 的子命令,后面章节会用到)。很多公司把 clippy 当成代码合并前的必过检查,养成好习惯从一开始就开。
Tip想看某个工具链能装哪些组件,跑
rustup component list。遇到 “component not found”,多半是你当前通道(比如 stable)暂时没包含它,换 nightly 通常就有。
3-5 目标平台(target)与交叉编译
target 指”编译出的程序跑在哪类机器上”。比如你在本机(x86_64 电脑)开发,想给树莓派(ARM 架构)编一个程序,就需要加对应的 target:
rustup target add armv7-unknown-linux-gnueabihf
然后编译时指定:
cargo build --target armv7-unknown-linux-gnueabihf
这就是所谓”交叉编译”——在 A 机器上编出给 B 机器跑的程序。嵌入式、跨平台发布常用。初学者暂时用不到,知道 rustup 有这能力即可。
3-6 本地文档:离线也能查
rustup 还能帮你把标准库文档下载到本地:
rustup component add rust-docs
之后运行 rustup doc 会直接打开本地浏览器,断网也能查 API。官方书也一并带在本地,输入 rustup doc --book 即可。新手在没网的环境里靠这个自学很方便。
3-7 几个日常管理命令汇总
rustup update:升级所有已装工具链到最新。rustup self update:升级 rustup 自身。rustup which cargo:显示当前用的 cargo 在哪个路径。rustup toolchain list:列出所有已装工具链。
Warning别在同一台机器上混用系统包管理器(如 apt、brew)装的 Rust 和 rustup 装的 Rust,两套会打架,命令行调到的可能不是你以为那个。统一用 rustup 管理最省心。
rustup 的核心就这些。日常你多半只会用到 rustup update 和偶尔切换版本。下一章我们用最朴素的方式写出第一个程序,不依赖 cargo,先用 rustc 直接编译,体会”写代码→编译→运行”这条最原始的链路。
3-8 国内镜像加速安装
如果你在国内,官方源下载慢,可以配置国内镜像加速,这也是 rustup 管理”从哪下载”的体现。原理是设置两个环境变量,让 rustup 改从镜像站拉取:
# 以清华镜像为例(安装前设置)
export RUSTUP_DIST_SERVER="https://mirrors.tuna.tsinghua.edu.cn/rustup"
export RUSTUP_UPDATE_ROOT="https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup"
设好后再跑安装脚本或 rustup update,就会走镜像,速度快很多。这两个变量只是改”下载地址”,不影响工具链本身的行为,装完可以取消设置。
Note镜像地址可能随时间变化,具体用哪个、怎么设,建议搜索”rustup 镜像”拿最新的。这里的关键是理解:rustup 把”下载源”做成可配置项,这正是它作为”总管”灵活性的体现。进阶时你还会遇到 cargo 的镜像配置(改
~/.cargo/config.toml的 source 替换),思路类似。
Tip除了工具链镜像,cargo 下载第三方 crate 也能换国内源,否则
cargo build别人的项目时拉依赖会很慢。等学到依赖管理时再配置也不迟,先记住”rustup 和 cargo 的源都能配镜像”这件事。
3-9 离线文档的更多姿势
查看本地文档还有个实用姿势:直接 rustup doc 打开标准库网页,断网也能查。想查某个具体类型(比如 String)的 API,网页里搜索即可。新手遇到”这个方法叫什么、怎么用”,第一反应应该是查文档,而不是瞎猜。
rustup doc # 打开标准库文档
rustup doc --book # 打开官方免费书
Tip官方书(The Rust Programming Language)有中文译本,搜索”Rust 程序设计语言”就能找到。它和本教程互补:本教程重通俗速成,官方书重系统完整。卡在某个概念时,换一个来源看常有意外的通透感。
3-10 项目级锁版本
团队开发时,版本一致性是个隐形坑:张三用新版 Rust 编过的代码,李四用旧版可能编不过、或行为微妙不同。rustup 提供了”项目级锁定”机制——在项目根目录放一个 rust-toolchain.toml 文件,写明 channel 版本,任何人打开项目 rustup 都会自动切到指定版本,不用每人手动 rustup default。这对保证”全组用同一套工具链”特别有用,也是 Rust 工程化的一个小最佳实践。
Tip学本教程不必现在就建这个文件——本机一个稳定版就够。但知道”rustup 能按项目锁版本”这件事,以后进团队写 Rust 会少吃亏。版本管理看似琐碎,却是协作顺畅的前提。
3-11 小结
rustup 是工具链总管:stable/beta/nightly 三个通道、组件 rustfmt/clippy、目标平台交叉编译,以及离线文档。日常你多半只用 rustup update 和偶尔切版本。记住国内可配镜像加速下载。下一章我们用最朴素的方式写出第一个程序。