温馨提示×

Debian Rust依赖如何管

小樊
41
2026-09-14 08:40:15
栏目: 编程语言

在 Debian 上管理 Rust 依赖,一般可以从 系统级( apt )项目级( cargo ) 两个层面来看。下面按常见场景说明。


一、Rust 工具链本身(Debian 上怎么装)

1. 用 Debian 官方源(稳定但版本旧)

sudo apt update
sudo apt install rustc cargo

优点:

  • 和 Debian 系统集成好
  • 安全更新由 Debian 维护

缺点:

  • Rust 版本通常较旧(尤其 stable Debian)

2. 用 rustup(推荐,版本新)

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

适合:

  • 开发用
  • 需要新版 Rust / 多工具链

⚠️ Debian 官方不建议混用 apt 和 rustup,建议二选一


二、项目依赖管理(Cargo)

Rust 项目的依赖主要由 Cargo 管理,与 Debian 关系不大。

1. 基本文件

  • Cargo.toml:声明依赖
  • Cargo.lock:锁定版本(可提交)

2. 添加依赖

cargo add serde

或手动:

[dependencies]
serde = "1.0"

3. 常用命令

cargo build
cargo update
cargo tree        # 查看依赖树
cargo audit       # 安全漏洞检查

三、Debian 打包 Rust 项目(*.deb)

如果你是 为 Debian 打包 Rust 软件,依赖管理较特殊。

1. 推荐方式(Debian 官方做法)

  • 使用 debcargo
  • 每个 Rust crate 单独打成 .deb
  • 依赖通过 Build-Depends 声明
sudo apt install debcargo
debcargo package serde 1.0.0

2. 简化方式(不严格合规)

  • cargo build --release
  • cargo-deb 打包
cargo install cargo-deb
cargo deb

注意:Debian 官方仓库 不接受 cargo-deb 方式


四、系统库依赖(非 Rust 库)

有些 Rust crate 依赖 C 库,例如:

  • openssl
  • sqlite
  • libssl

在 Debian 上需装 dev 包:

sudo apt install libssl-dev libsqlite3-dev

五、常见问题

Q1:apt 和 cargo 的依赖会冲突吗?

不会,它们是两套体系:

  • apt:系统级
  • cargo:项目级

Q2:Debian 旧 Rust 能开发吗?

可以,但不推荐新项目。

Q3:CI / 服务器怎么选?

  • 服务器运行:apt 稳定
  • 开发机:rustup

如果你是想:

  • ✅ 写 Rust 项目
  • ✅ 给 Debian 打包
  • ✅ 在 Docker 里用 Rust

可以告诉我具体场景,我可以给你更针对性的方案。

0