rustup是linux下唯一推荐的rust版本管理方式,安装后需手动source $home/.cargo/env使~/.cargo/bin加入path,否则rustc等命令不可用;必须运行rustup default设置默认工具链,并用rustup show验证当前激活工具链与rustc/cargo版本一致性。

Rustup 是唯一推荐的 Linux 下 Rust 版本管理方式,不用它就等于手动维护 rustc/cargo 二进制、路径、组件和目标三元组——几乎必然出错。
安装 rustup 后必须 source 环境变量
运行 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 安装后,rustup 会把 cargo、rustc 等命令软链到 ~/.cargo/bin,但这个路径不会自动加入 $PATH。不生效就等于没装。
- 检查是否生效:运行
which rustc,如果输出为空或不是~/.cargo/bin/rustc,说明环境变量没加载 - 手动加载:执行
source $HOME/.cargo/env(适用于 bash/zsh;若用 fish,则需source $HOME/.cargo/env.fish) - 永久生效:把
source $HOME/.cargo/env加入~/.bashrc或~/.zshrc,再source ~/.bashrc - 验证:运行
rustup --version和rustc --version,两者都应有输出
rustup toolchain list 和 rustup show 的区别
rustup toolchain list 只列已安装的工具链名称(如 stable-x86_64-unknown-linux-gnu),而 rustup show 显示当前激活的工具链、默认工具链、已安装目标、以及 rustc 实际路径——这才是你真正该查的。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 常见错误现象:
cargo build报错 “no such file or directory” 或 “version mismatch”,往往是因为rustup show显示的 active toolchain 和你预期的不一致 - 安装新版本后,它不会自动成为 default,必须显式
rustup default 1.86.0或rustup default nightly -
rustup which rustc能直接看到当前调用的是哪个二进制,比which rustc更可靠(后者可能被 PATH 干扰)
项目级版本锁定必须用 rust-toolchain.toml
用 rustup override set 1.86.0 会在项目目录下生成 rust-toolchain 文件(纯文本),但它只支持 channel 名(如 1.86.0 或 nightly),不支持组件/目标/配置。现代项目应优先用 rust-toolchain.toml。
- 创建
rust-toolchain.toml文件,内容示例:
[toolchain] channel = "1.86.0" components = ["rustfmt", "clippy"] targets = ["x86_64-unknown-linux-gnu"]
- 这样 CI、新协作者、甚至 IDE(如 rust-analyzer)都能按需自动安装对应组件和目标
- 如果只写
rust-toolchain文件,rustup 不会校验组件是否存在,cargo fmt可能直接报错 “command not found” -
rustup show会明确提示 “using toolchain from ‘rust-toolchain.toml’”,比 override 更透明
更新和卸载容易忽略的细节
rustup update 默认只更新 stable/beta/nightly 三个 channel,不会更新你手动 install 的具体版本号(如 1.75.0)。这类版本一旦安装,就永远静止——除非你主动 rustup uninstall 1.75.0 && rustup install 1.75.0。
- 想让某历史版本也保持最新补丁?不行。rustup 不提供“语义化版本自动升级”机制,
1.75.0就是1.75.0,不会变成1.75.1 -
rustup self update更新的是 rustup 本身,不是 Rust 工具链;漏掉这步可能导致无法安装新 nightly 或解析新版 rust-toolchain.toml - 卸载前先确认:运行
rustup show查看是否还有项目正在 override 使用该工具链,否则可能突然导致某个项目构建失败
最常被跳过的一步是:每次切换或安装新工具链后,不验证 rustup which rustc 和 cargo --version 是否一致——它们不一致时,cargo 可能调用旧 rustc,编译行为不可预测。










