推荐使用 rustup 安装 rust,它完整包含 cargo、rust-docs 并支持工具链切换;手动安装或系统包管理器易缺组件、版本滞后且易冲突。

用 rustup 装 Rust 是唯一推荐方式
Linux 上手动编译或从包管理器装 rustc 会漏掉 cargo、rust-docs、工具链切换能力,还容易和系统包冲突。官方 rustup 不仅装得全,还能轻松换版本、设默认工具链、管理组件(比如 rustfmt 或 clippy)。
执行这行命令即可:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 安装脚本会把
rustup、cargo、rustc放进$HOME/.cargo/bin,记得把它加进$PATH(脚本末尾会提示你 reload shell 或手动执行source $HOME/.cargo/env) - 别用
sudo apt install rustc—— Ubuntu/Debian 的仓库版通常滞后 1–2 个大版本,且没cargo命令 - 如果提示
command not found: rustc,大概率是 shell 没重载环境变量,不是没装成功
rustup install 和 rustup default 的区别必须分清
刚装完 rustup 默认只装了 stable 工具链,但不会自动设为全局默认;如果你之前装过其他版本(比如 nightly),rustc --version 可能显示旧版,导致新项目构建失败。
-
rustup install stable:下载并本地存一份stable工具链(已装过就跳过) -
rustup default stable:让所有终端里运行的rustc、cargo都指向这个版本 - 想临时切到 nightly?用
rustup override set nightly,只对当前目录生效,不影响全局 - 误删了
stable?rustup self uninstall不会删工具链,得用rustup toolchain uninstall stable
遇到 error: linker `cc` not found 怎么办
Rust 编译器默认调系统 C 链接器(cc),但很多最小化安装的 Linux 发行版(如 Alpine、Ubuntu Server)不带 build-essential 或 gcc 包,cargo build 就直接报错。
- Debian/Ubuntu:
sudo apt install build-essential - CentOS/RHEL/Fedora:
sudo dnf groupinstall "Development Tools"或sudo yum groupinstall "Development Tools" - Alpine:
sudo apk add build-base - 如果只是写 no_std 程序或用
rust-lld,可加-C linker=rust-lld,但多数人没必要绕开系统链接器
cargo new 后跑不起来?检查 Cargo.toml 的 [package] 配置
新建项目后 cargo run 报错“no bin target”,往往是因为 Cargo.toml 里没声明可执行入口,或者文件结构不对。
-
cargo new hello生成的是二进制项目,入口是src/main.rs;若想同时支持库 + 可执行文件,得手动加[[bin]]段或建src/bin/目录 - 确认
[package]下有name和version,缺一不可;cargo不接受空值或注释占位 - 如果
src/main.rs存在但cargo run仍提示 no bin,运行cargo clean && cargo build清缓存,有时 lock 文件残留会导致误判
rustup default 这一步,以为装完就万事大吉。










