在 Debian 环境里做 Rust 开发,真正需要先理顺的不是语法,而是工具链、项目结构、依赖和打包这几件事怎么接起来。下面按“先装环境,再管项目,最后产出 Debian 包”的顺序展开,命令可以直接照着执行,也能帮助你判断该用官方工具链还是 Debian 仓库版本。
安装 Rust 与 Cargo
在 Debian 上,最常见的做法是直接安装 Rust 官方提供的工具链管理器 rustup。这样不仅能拿到最新稳定版的 rustc 和 cargo,后续如果要切换版本,也会轻松很多。

推荐方式:使用 rustup
执行下面两条命令即可安装,并加载当前会话的环境变量:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env # 加载环境变量
安装完成后,可以马上检查版本是否可用:
rustc --version 用来查看 Rust 编译器版本,cargo --version 用来确认 Cargo 是否安装成功。
备选方式:通过 APT 安装
如果你更看重省事,Debian 官方仓库也提供了稳定版的 rustc 和 cargo。不过这一版本可能不是最新,适合对版本新旧不敏感的场景。
sudo apt update && sudo apt install rustc cargo
需要多版本时怎么管理工具链
如果项目对编译器版本有要求,rustup 可以继续负责安装和切换。比如安装 1.58.0:
rustup install 1.58.0
把默认版本切到这个工具链:
rustup default 1.58.0
如果只想让某个项目使用指定版本,可以在项目目录下创建 .rust-version 文件,并写入对应版本号。
Cargo 的项目创建与日常操作
环境准备好之后,后面的大多数工作都交给 Cargo。它既是包管理器,也是构建工具,项目初始化、编译、运行和清理都可以通过统一命令完成。
新建项目
创建一个新的 Rust 项目:
cargo new my_project
cd my_project
执行后,Cargo 会自动生成基础目录结构,其中就包括 src/main.rs。
构建与运行
默认调试构建使用下面的命令,产物位于 target/debug/:
cargo build
如果你要生成优化后的发布版本,则使用:
cargo build --release
发布版产物会放到 target/release/。
开发阶段最常用的通常是直接编译并运行:
cargo run
清理缓存与查看依赖树
构建目录持续增长时,可以用下面的命令清理缓存:
cargo clean
这会删除 target/ 目录内容,适合释放磁盘空间或重新构建。
如果你想看清项目的依赖关系,可以先安装 cargo-tree 插件,再输出依赖树:
cargo install cargo-tree
cargo tree
如何维护 Cargo.toml 里的依赖
Rust 项目的依赖主要写在项目根目录的 Cargo.toml 中。日常最常见的动作就是添加、更新和删除依赖。

添加依赖
在 [dependencies] 段里直接写入库名和版本即可。原文示例里加入了 serde 和 rand:
[dependencies]
serde = { version = "1.0", features = ["derive"] }
rand = "0.8"
保存后执行一次构建,Cargo 会自动下载并编译所需依赖:
cargo build
更新依赖
如果要把全部依赖更新到当前允许的最新兼容版本,可以执行:
cargo update
如果只更新单个依赖,例如 serde:
cargo update -p serde
删除依赖
删除依赖时,不需要单独的 Cargo 命令。直接从 Cargo.toml 的 [dependencies] 中移除对应条目,然后再运行一次 cargo build,让项目状态重新同步即可。
把 Rust 项目打成 Debian 包
如果你的目标不是只在本机运行,而是要把程序以 Debian 原生包的形式分发,那么还需要补上 cargo-deb 这一步。

安装 cargo-deb
cargo-deb 用于把 Rust 项目构建成 .deb 包,先安装工具:
cargo install cargo-deb
生成 .deb 文件
在项目目录中执行:
cargo deb
生成后的文件位于 target/debian/,命名格式类似 my_project_0.1.0-1_amd64.deb。
安装生成的 Debian 包
打包完成后,可以直接使用 dpkg 安装测试:
sudo dpkg -i target/debian/my_project_0.1.0-1_amd64.deb
自定义包信息
如果需要补充维护者、依赖或描述信息,可以在 Cargo.toml 中加入 package.metadata.deb 配置。例如:
[package.metadata.deb]
maintainer = "Your Name "
depends = "libc6 (>= 2.28), libssl1.1 (>= 1.1.1)"
description = "A brief description of your project"
这部分配置直接决定 Debian 包的元数据表现,适合准备分发或交付安装包时完善。
一套够用的 Debian 上 Rust 工作流
按这套流程走,Debian 上的 Rust 项目管理基本就完整了:用 rustup 或 APT 安装工具链,用 Cargo 管理创建、构建和依赖,再通过 cargo-deb 输出 .deb 包。对于日常开发,重点在于先确定工具链来源;对于交付场景,关键则是补齐 package.metadata.deb 和实际安装验证。







