CentOS下Rust项目的构建流程是什么
导读:CentOS 下 Rust 项目的构建流程 一 准备环境 安装 Rust 工具链(rustup),这是官方推荐方式,安装后自带 cargo: 执行安装:curl --proto ‘=https’ --tlsv1.2 -sSf https...
CentOS 下 Rust 项目的构建流程
一 准备环境
- 安装 Rust 工具链(rustup),这是官方推荐方式,安装后自带 cargo:
- 执行安装:curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 使环境变量生效:source $HOME/.cargo/env
- 验证版本:rustc --version、cargo --version
- 安装基础构建工具(很多 crate 需要 C 编译器与系统链接器):
- CentOS 7:sudo yum groupinstall -y “Development Tools”
- CentOS 8/Stream:sudo dnf groupinstall -y “Development Tools”
- 可选优化:配置 Cargo 国内镜像(提升依赖下载速度),在 ~/.cargo/config.toml 中添加:
- [source.crates-io] replace-with = ‘tuna’
- [source.tuna] registry = “https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git”
二 构建与运行
- 创建项目(可选):cargo new myapp & & cd myapp
- 调试构建与运行:cargo build、cargo run(产物在 target/debug/)
- 发布构建(优化):cargo build --release(产物在 target/release/)
- 常用辅助命令:
- 仅检查能否编译:cargo check(更快,不产出二进制)
- 运行测试:cargo test
- 代码格式化与静态检查:cargo fmt、cargo clippy
- 产物位置与运行示例:
- 二进制可执行文件:target/release/myapp(或 target/debug/myapp)
- 运行:./target/release/myapp
三 交叉编译与 Docker 构建
- 交叉编译(示例为 x86_64-unknown-linux-gnu):
- 安装 cross:cargo install cross --git https://github.com/cross-rs/cross
- 构建:cross build --target x86_64-unknown-linux-gnu
- 产物路径:target/x86_64-unknown-linux-gnu/release/…
- Docker 多阶段构建(减小镜像体积,示例):
- Dockerfile:
- FROM rust:latest AS builder
- WORKDIR /usr/src/app
- COPY Cargo.toml Cargo.lock ./
- RUN mkdir src & & echo “fn main(){ println!("placeholder")} ” > src/main.rs
- RUN cargo build --release
- COPY src ./src
- FROM debian:buster-slim
- COPY --from=builder /usr/src/app/target/x86_64-unknown-linux-gnu/release/myapp /usr/local/bin/myapp
- ENTRYPOINT [“myapp”]
- 构建与运行:docker build -t myapp . & & docker run -d myapp
- Dockerfile:
四 部署为系统服务
- 创建 systemd 服务文件:sudo nano /etc/systemd/system/myapp.service
- [Unit]
- Description=My Rust App
- After=network.target
- [Service]
- User=myuser
- Group=mygroup
- ExecStart=/path/to/target/release/myapp
- Restart=always
- RestartSec=3
- [Install]
- WantedBy=multi-user.target
- [Unit]
- 启动与开机自启:
- sudo systemctl daemon-reload
- sudo systemctl start myapp & & sudo systemctl enable myapp
- 查看状态与日志:sudo systemctl status myapp、sudo journalctl -u myapp -f
- 如监听 8080 端口,放行防火墙:
- sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- sudo firewall-cmd --reload
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下Rust项目的构建流程是什么
本文地址: https://pptw.com/jishu/763020.html
