Debian 上 Rust 编译报错通常不是 Rust 本身的问题,而是 系统环境、依赖或工具链版本不匹配 导致的。下面按最常见原因 → 对应解决办法给你一个排查清单。
Debian stable(如 Debian 11/12)自带的 rustc 往往 非常老。
rustc --version
如果看到类似:
rustc 1.48.0
而你的项目需要:
rust-version = "1.70"
✅ 解决办法(强烈推荐):
不要用 apt 装 Rust
# 卸载 apt 版本
sudo apt remove rustc cargo
# 用官方方式安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
然后:
source ~/.cargo/env
rustc --version
Rust 很多 crate(如 openssl-sys、zstd、sqlite)依赖 C 编译器。
error: failed to run custom build command for `openssl-sys`
cc not found
✅ 解决办法
sudo apt update
sudo apt install -y build-essential pkg-config libssl-dev
常用组合:
build-essential # gcc / make
pkg-config
libssl-dev # OpenSSL
比如:
openssl-sys v0.9.XX
OpenSSL version 3.x required
Debian 11 默认是 OpenSSL 1.1,而新 Rust crate 要 3.x。
✅ 解决办法
sudo apt install libssl-dev
或指定旧版 crate:
[dependencies]
openssl-sys = "0.9.77"
比如你在 ARM / aarch64 / riscv 上编译 x86 程序。
error: linker `cc` not found
✅ 检查:
rustup target list --installed
uname -m
如果不是本机架构,需要:
sudo apt install gcc-aarch64-linux-gnu
大型项目(如 wasm、chromium 相关)容易炸。
✅ 检查:
df -h
free -h
报错类似:
/usr/bin/ld: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found
✅ 解决:
你可以直接跑这些命令,把输出贴出来:
rustc --version
cargo --version
uname -a
cat /etc/debian_version
然后贴出 完整报错(尤其是第一行 error: 之后的内容)。
你可以直接贴:
cargo build)apt 装的 Rust我可以 逐行帮你分析,甚至直接给你一条能跑的命令 ✅