必须用 rustup 安装,因其支持多版本切换、cargo 插件及完整工具链管理;手动安装或发行版包管理器会导致版本滞后、组件缺失;安装命令中 --proto '=https' 和 --tlsv1.2 缺一不可,否则在旧系统或企业网络下因 TLS 协议不兼容而失败。

rustup 是唯一推荐的安装方式,手动编译、发行版包管理器(如 apt install rustc)或直接下载二进制都不可取——前者版本滞后、组件缺失,后者无法管理工具链、不支持 cargo 插件和多版本切换。
为什么必须用 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
这条命令不是“可选写法”,而是强制要求:--proto '=https' 和 --tlsv1.2 缺一不可。在 CentOS 7、某些企业网络或旧版 OpenSSL 环境下,省略任一参数都会触发 curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version。这不是 Rust 的 bug,是 curl 主动拒绝降级 TLS 协议。
常见错误现象:
- 复制网上简化的命令
curl https://sh.rustup.rs | sh→ 直接失败 - 没装
curl就跑脚本 → 报command not found: curl,需先执行sudo apt install curl(Ubuntu/Debian)或sudo dnf install curl(Fedora/RHEL) - 脚本运行时手抖选了
2) Customize installation→ 新手会漏掉默认组件(如cargo),导致后续cargo build不可用
source "$HOME/.cargo/env" 不是建议,是生效前提
安装脚本把 rustc、cargo 等二进制放到了 $HOME/.cargo/bin,但这个路径不在系统默认 PATH 中。不执行这步,所有命令都会报 command not found。
操作要点:
- 立即生效:运行
source "$HOME/.cargo/env"(注意双引号,防路径含空格出错) - 永久生效:把
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 没装好,是系统缺 C 工具链。Rust 编译器依赖系统链接器(通常是 gcc 或 clang)来生成可执行文件,最小化 Linux 系统(如云服务器基础镜像、Docker 容器)默认不带这些。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
对应发行版安装命令:
- Ubuntu/Debian:
sudo apt install build-essential libssl-dev(libssl-dev对reqwest等 crate 必须) - CentOS/RHEL/Fedora:
sudo dnf groupinstall "Development Tools"(旧版用yum groupinstall) - Arch Linux:
sudo pacman -S base-devel
装完后无需重启终端,直接重试 cargo build 即可。
国内用户必须配镜像源,否则大概率卡死在下载环节
Rust 工具链体积大(单个 rustc 组件超 70MB),官方源在国内直连极不稳定。不配镜像,rustup 可能卡在 downloading component 'rustc' 数十分钟无响应。
两处必须配置:
-
Rustup 工具链下载加速:安装前执行
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -
Cargo crate 下载加速:创建
~/.cargo/config.toml,内容为:[source.crates-io] replace-with = 'ustc' [source.ustc] registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
(适用于 cargo ≥ 1.68;若版本低,用registry = "https://mirrors.ustc.edu.cn/crates.io-index/")
最易忽略的一点:镜像配置必须在 rustup 安装完成、source "$HOME/.cargo/env" 生效之后才起作用。顺序错了,等于白配。

















