Rust如何在CentOS上搭建项目
导读:在 CentOS 上搭建 Rust 项目的完整流程 一 环境准备与 Rust 安装 更新系统并安装基础编译工具(Rust 构建依赖 gcc/clang 等): CentOS 7/8:sudo yum groupinstall -y “D...
在 CentOS 上搭建 Rust 项目的完整流程
一 环境准备与 Rust 安装
- 更新系统并安装基础编译工具(Rust 构建依赖 gcc/clang 等):
- CentOS 7/8:sudo yum groupinstall -y “Development Tools” & & sudo yum install -y gcc clang
- 使用 rustup 安装并管理工具链(稳定版):
- curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh
- 重新加载环境:source $HOME/.cargo/env
- 验证:rustc --version、cargo --version
- 可选 国内镜像加速(提升下载速度):
- 配置 rustup 镜像(写入 /etc/profile 或当前 shell):
- export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
- export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
- 配置 Cargo 源(~/.cargo/config):
- [source.crates-io] registry = “https://github.com/rust-lang/crates.io-index” replace-with = ‘ustc’
- [source.ustc] registry = “git://mirrors.ustc.edu.cn/crates.io-index”
- 配置 rustup 镜像(写入 /etc/profile 或当前 shell):
二 创建与构建项目
- 创建新项目:cargo new myapp & & cd myapp
- 本地运行与调试:cargo run(开发态)
- 生产构建:cargo build --release(二进制位于 target/release/)
- 运行生产二进制:./target/release/myapp
- 说明:Rust 是预编译语言,部署时通常只需分发该可执行文件及所需配置/静态资源
三 作为系统服务运行与运维
- 创建 systemd 服务文件:sudo nano /etc/systemd/system/myapp.service
- 示例内容(按需修改路径与用户):
- [Unit] Description=My Rust App After=network.target
- [Service] User=myapp Group=myapp ExecStart=/path/to/target/release/myapp Restart=always RestartSec=3 Environment=MYAPP_ENV=production
- [Install] WantedBy=multi-user.target
- 常用运维命令:
- 启动/开机自启: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
- 可选 反向代理(Nginx):
- 安装:sudo yum install nginx & & sudo systemctl enable --now nginx
- 配置 /etc/nginx/conf.d/myapp.conf:
- server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
- 生效:sudo nginx -t & & sudo systemctl reload nginx
四 交叉编译与容器化部署
- 交叉编译(多架构发布,如 aarch64):
- 安装 cross:cargo install cross --git https://github.com/cross-rs/cross
- 构建示例:cross build --target aarch64-unknown-linux-gnu(产物在 target/aarch64-unknown-linux-gnu/release/)
- Docker 容器化(示例多阶段构建,减小镜像体积):
- Dockerfile:
- FROM rust:latest AS builder WORKDIR /usr/src/myapp COPY Cargo.toml Cargo.lock ./ RUN mkdir src & & echo “fn main(){ println!("placeholder")} ” > src/main.rs RUN cargo build --release COPY src ./src RUN cargo build --release
- FROM debian:buster-slim COPY --from=builder /usr/src/myapp/target/x86_64-unknown-linux-gnu/release/myapp /usr/local/bin/myapp ENTRYPOINT [“myapp”]
- 构建与运行:docker build -t myapp . & & docker run -d myapp
- Dockerfile:
五 常见问题与排查
- 命令未找到(rustc/cargo):确认已执行 source $HOME/.cargo/env,或重开终端;必要时检查 PATH 是否包含 $HOME/.cargo/bin
- 构建失败缺少 C/C++ 工具链:安装 gcc/clang 与基础开发组(见上文)
- 网络慢或拉取依赖失败:配置 rustup 与 Cargo 国内镜像(见上文)
- 端口未开放/访问异常:确认服务已监听、云安全组/本机防火墙已放行对应端口(如 8080),并用 curl/浏览器验证
- 运行权限问题:确保二进制与配置目录对运行用户可读可执行,必要时使用 sudo 或调整属主/权限
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Rust如何在CentOS上搭建项目
本文地址: https://pptw.com/jishu/760756.html
