Debian 下解决 Rust 依赖的实用方案
一 基础准备与环境
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shrustup updatesudo apt update && sudo apt install -y build-essential cmake git clang llvmlibssl-dev libsqlite3-dev libpq-dev libncurses5-dev libncursesw5-dev zlib1g-dev pkg-config二 依赖解析与网络优化
serde = { version = "1.0", features = ["derive"] }cargo updatecargo check(更快定位问题)cargo build、cargo run[source.crates-io]
replace-with = 'ustc'
[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
cargo fetch 验证。三 常见报错与修复
sudo apt install -y build-essential clang llvmsudo apt install -y libssl-dev libsqlite3-dev libpq-devcargo clean && cargo buildcargo clean 后再构建,常用于解决缓存或锁文件不一致问题cargo update -p 包名 单独升级某个依赖。四 进阶优化与发布
cargo install sccache && export RUSTC_WRAPPER=$(which sccache)export RUSTC_LINKER=moldRUSTFLAGS="-Z threads=8" cargo +nightly buildcargo tree;移除未使用依赖:cargo install cargo-udeps && cargo udepsFROM rust:1.70 as builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates tzdata && rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/target/release/your-app /usr/local/bin/your-app
CMD ["your-app"]