# 从源码编译 适合需要在目标平台自行构建二进制,或参与开发的场景。 ## 环境要求 - Debian / Ubuntu 系统 - Rust 工具链(稳定版) - 基础构建依赖 ## 安装依赖 ```bash # 安装系统依赖 sudo apt update sudo apt install -y build-essential pkg-config libssl-dev # 安装 Rust(如果未安装) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env ``` ## 编译 ```bash # 进入项目目录 cd Linux_Server_CLI # Release 编译(约 3-5 分钟,优化体积和性能) cargo build --release # 编译产物位置 # target/release/astral-server ``` ## 生成示例配置 ```bash ./target/release/astral-server init # 会在可执行文件同目录生成 config.toml ``` ## 导出 Web 管理端(可选) ```bash ./target/release/astral-server export-web --output web/index.html ``` ## 打包 .deb 安装包 仓库提供 `deploy/build-deb.sh` 脚本,可将编译产物打包为符合 FHS 布局的 `.deb`: ```bash # 使用已编译好的 target/x86_64-unknown-linux-gnu/release/astral-server bash deploy/build-deb.sh # 指定架构与 target(ARM 交叉编译示例) bash deploy/build-deb.sh arm64 aarch64-unknown-linux-gnu ``` 脚本行为: - 版本号直接取自 `Cargo.toml`(形如 `1.4.2-4`),保证包版本与二进制一致; - 二进制不存在时自动 `cargo build --release`(交叉 target 缺则尝试 `rustup target add`); - 用二进制自带的示例配置生成包内默认配置(与 `astral-server init` 一致); - 安装 `astral-server.service` systemd 单元文件; - 通过 `conffiles` 声明 `/etc/astral-server/config.toml`,升级时保留用户已修改的配置; - `postinst` / `prerm` 处理 systemd 重载与卸载时的服务停止。 产物位于 `dist/astral-server_<版本>_<架构>.deb`。 ## 相关页面 - [快速开始](quick-start.md) - [命令行接口 CLI](cli-commands.md) - [配置参考](configuration.md)