必须用rustup安装,因apt install rustc缺cargo且版本滞后,手动编译则因c工具链缺失导致linker错误;安装后须执行source "$home/.cargo/env"将$home/.cargo/bin加入path,否则cargo命令不可用;还需安装build-essential等c构建工具并配置清华镜像源。

用 rustup 装,别碰 apt install rustc 或手动编译——前者缺 cargo,后者卡在链接器报错或命令找不到,99% 的失败都源于这一步选错。
为什么 cargo 命令根本不存在
不是没装上,是路径没进 $PATH。rustup 把二进制文件全放进 $HOME/.cargo/bin,但这个目录默认不在系统搜索路径里。
- 立即生效:运行
source "$HOME/.cargo/env"(引号必须有,防用户名含空格) - 永久生效:把这行加到
~/.bashrc或~/.zshrc末尾,再执行source ~/.bashrc - 验证是否生效:
which cargo应输出类似/home/xxx/.cargo/bin/cargo,而不是报错或返回/usr/bin/cargo
cargo build 报 error: linker `cc` not found
Rust 编译器不带链接器,它默认调用系统 cc(通常是 gcc)。最小化 Linux 系统(Ubuntu Server、Docker 镜像、WSL2)压根没装 C 工具链,和 Rust 装没装好完全无关。
- Ubuntu/Debian:
sudo apt install build-essential(只装gcc不够,build-essential才包含make、libc6-dev等) - CentOS/RHEL/Fedora:
sudo dnf groupinstall "Development Tools"(旧版用yum) - WSL2 用户额外建议:
sudo apt install libssl-dev,否则reqwest等 crate 会编译失败 - 验证:
cc --version能输出版本号,且cargo build不再报该错误
国内安装卡在 downloading component 'rustc'
不是断网,是 static.rust-lang.org 在国内被限速或 DNS 污染。中断后残留未清,镜像配置就无效。
- 先清干净:
rm -rf $HOME/.rustup $HOME/.cargo - 设镜像源(仅当前 shell 有效):
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup - 再跑安装命令:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - 注意:
--proto '=https'和--tlsv1.2两个参数不能少,CentOS 7 或老旧 OpenSSL 环境下漏掉会报 TLS 握手失败
真正容易被忽略的是三件事:环境变量没 source、C 工具链没装、镜像源没在安装前设置——这三个点任意一个漏掉,都会让安装停在看似“莫名其妙”的地方。











