Skip to content

build from source

yumi-furry edited this page Oct 16, 2026 · 1 revision

从源码编译

适合需要在目标平台自行构建二进制,或参与开发的场景。

环境要求

  • Debian / Ubuntu 系统
  • Rust 工具链(稳定版)
  • 基础构建依赖

安装依赖

# 安装系统依赖
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

编译

# 进入项目目录
cd Linux_Server_CLI

# Release 编译(约 3-5 分钟,优化体积和性能)
cargo build --release

# 编译产物位置
# target/release/astral-server

生成示例配置

./target/release/astral-server init
# 会在可执行文件同目录生成 config.toml

导出 Web 管理端(可选)

./target/release/astral-server export-web --output web/index.html

打包 .deb 安装包

仓库提供 deploy/build-deb.sh 脚本,可将编译产物打包为符合 FHS 布局的 .deb:

# 使用已编译好的 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。

相关页面

Clone this wiki locally