Debian 下 Rust 项目的管理实践
一 环境准备与工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shrustup updaterustup default stablerustup component add rustfmt && cargo fmtrustup component add clippy && cargo clippyapt install rustc cargo 使用发行版仓库的 Rust,但版本通常较旧;开发建议使用 rustup 获取最新稳定版工具链。二 项目生命周期与依赖管理
cargo new my_project && cd my_projectcargo build(调试) / cargo build --release(发布)cargo run;测试:cargo testcargo add <crate>(或手动编辑 Cargo.toml 的 [dependencies])cargo update(遵循 Cargo.toml 中的版本约束)cargo publish(需账号与权限)三 质量保障与持续集成
cargo fmt --checkcargo clippy -- -D warningscargo benchRUST_BACKTRACE=1 获取错误回溯cargo fmt、cargo clippy、cargo test、cargo build --release四 打包与发布 Debian 包
cargo install cargo-deb(需 Rust 1.63+;若 LZMA 依赖导致问题,可用 cargo install cargo-deb --no-default-features)cargo deb(产物位于 target/debian/--output 指定路径)sudo dpkg -i target/debian/*.debcargo deb --separate-debug-symbols 将调试符号分离至 /usr/lib/debug/…[package.metadata.deb]):
depends)、变更日志、扩展描述systemd-units 自动安装 systemd 单元文件与资产,便于服务化管理五 部署与运行管理
[Unit]
Description=xxx Rust Project
After=network.target
[Service]
ExecStart=/data/deploy/rust/bin/xxx/xxx
WorkingDirectory=/data/deploy/rust/bin/xxx
Restart=always
User=your_user
Group=your_group
StandardOutput=append:/data/deploy/rust/logs/xxx.log
StandardError=append:/data/deploy/rust/logs/xxx.log
[Install]
WantedBy=multi-user.target
sudo systemctl enable xxx && sudo systemctl start xxxsudo systemctl status xxx、sudo journalctl -u xxx -fgit pull 最新代码 → cargo build --release → 备份旧二进制 → 拷贝新二进制至运行目录 → systemctl restart xxx → 校验状态