Files
mond/llmdoc/architecture/packaging.md
Wang Defa ff86a4e2bf
All checks were successful
Build and Release Mond / build-and-test (arm64) (push) Successful in 4s
Build and Release Mond / build-and-test (amd64) (push) Successful in 14s
Build and Release Mond / release (push) Successful in 37s
feat: 优化 Debian 打包配置并初始化项目文档系统
- 简化 mond.service 配置,改为通过配置文件启动
- 优化 postinst 安装脚本,自动生成配置文件模板
- 优化 postrm 卸载脚本,正确清理数据目录
- 初始化 llmdoc 文档系统,包含项目概览、使用指南、架构说明和参考文档
- 更新 README.md 构建和配置说明
- 移除 .gitignore 中 llmdoc/ 的忽略规则
2025-12-24 08:59:06 +08:00

2.2 KiB
Raw Permalink Blame History

Mond 打包系统架构

1. 身份标识

  • 定义: 基于 Debian 打包规范的多平台软件分发系统
  • 目的: 提供标准化、可靠的软件安装和管理机制

2. 核心组件

  • debian/control.template (PackageMetadata): 定义包元数据
  • debian/postinst (PostInstallScript): 安装后配置脚本
  • debian/mond.service (SystemdService): systemd 服务配置
  • debian/build-deb.sh (BuildScript): 构建 Debian 包的脚本

3. 打包系统设计

Debian 包结构

  • 元数据: 版本、依赖、描述
  • 文件布局:
    • 二进制文件:/opt/mond/mond
    • 配置文件:/var/lib/mond/params.conf(首次安装时自动创建)
    • 数据目录:/var/lib/mond/data/
    • 日志目录:/var/log/mond/
    • systemd 服务:/lib/systemd/system/mond.service

安装后脚本逻辑

  1. 创建必要的系统用户和组(mond:mond
  2. 创建日志目录和数据目录(包括 /var/lib/mond/data 子目录)
  3. 生成默认配置文件(如果不存在)
    • 位置:/var/lib/mond/params.conf
    • 包含所有默认运行参数
    • 使用 INI 格式
    • 设置正确的权限640, mond:mond
  4. 设置文件和目录权限
  5. 重载 systemd 配置
  6. 显示安装后说明(包括配置文件位置和使用指引)

重要特性: 配置文件只在首次安装时创建,升级时不会覆盖用户修改。

systemd 集成

  • 支持标准服务管理命令
  • 使用配置文件方式启动(--config-file=/var/lib/mond/params.conf --non-interactive
  • 配置服务依赖和启动行为
  • 提供日志和状态监控
  • 安全沙箱设置NoNewPrivileges, ProtectSystem, ProtectHome
  • 允许写入配置目录、数据目录和日志目录ReadWritePaths
  • 自动重启策略Restart=always

配置管理优势:

  • 用户修改配置文件后,apt upgrade 不会覆盖
  • systemd 服务文件可以安全更新,不影响用户配置
  • 配置集中管理,易于维护
  • 数据与配置分离,便于管理

4. 设计原理

  • 标准合规: 遵循 Debian 打包最佳实践
  • 可配置性: 灵活的服务和安装配置
  • 可靠性: 通过 systemd 提供健壮的服务管理