- 简化 mond.service 配置,改为通过配置文件启动 - 优化 postinst 安装脚本,自动生成配置文件模板 - 优化 postrm 卸载脚本,正确清理数据目录 - 初始化 llmdoc 文档系统,包含项目概览、使用指南、架构说明和参考文档 - 更新 README.md 构建和配置说明 - 移除 .gitignore 中 llmdoc/ 的忽略规则
2.2 KiB
2.2 KiB
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
- 二进制文件:
安装后脚本逻辑
- 创建必要的系统用户和组(
mond:mond) - 创建日志目录和数据目录(包括
/var/lib/mond/data子目录) - 生成默认配置文件(如果不存在)
- 位置:
/var/lib/mond/params.conf - 包含所有默认运行参数
- 使用 INI 格式
- 设置正确的权限(640, mond:mond)
- 位置:
- 设置文件和目录权限
- 重载 systemd 配置
- 显示安装后说明(包括配置文件位置和使用指引)
重要特性: 配置文件只在首次安装时创建,升级时不会覆盖用户修改。
systemd 集成
- 支持标准服务管理命令
- 使用配置文件方式启动(
--config-file=/var/lib/mond/params.conf --non-interactive) - 配置服务依赖和启动行为
- 提供日志和状态监控
- 安全沙箱设置(NoNewPrivileges, ProtectSystem, ProtectHome)
- 允许写入配置目录、数据目录和日志目录(ReadWritePaths)
- 自动重启策略(Restart=always)
配置管理优势:
- 用户修改配置文件后,
apt upgrade不会覆盖 - systemd 服务文件可以安全更新,不影响用户配置
- 配置集中管理,易于维护
- 数据与配置分离,便于管理
4. 设计原理
- 标准合规: 遵循 Debian 打包最佳实践
- 可配置性: 灵活的服务和安装配置
- 可靠性: 通过 systemd 提供健壮的服务管理