DEBIAN/control 文件
单包模式
单包模式下,所有内容集成在一个 deb 包中:
Package: <appid>
Version: <version>
Architecture: amd64
Section: utils
Priority: optional
Maintainer: 开发者名称 <your.email@example.com>
Depends: libc6 (>= 2.34), systemd
Description: 简短描述
应用功能的详细描述。
字段参考:
| 字段 | 必填 | 说明 |
|---|---|---|
Package | ✅ 是 | 包名。必须与 config.ini 的 package 字段一致。 |
Version | ✅ 是 | 包版本。必须与 config.ini 的 version 字段一致。 |
Architecture | ✅ 是 | x86_64 填 amd64,aarch64 填 arm64。 |
Section | 是 | 包分类(如 utils、web、net)。 |
Priority | 是 | 通常为 optional。 |
Maintainer | ✅ 是 | 开发者名称和邮箱。 |
Depends | 建议 | 运行时依赖。声明所有必需的系统库和包。 |
Description | ✅ 是 | 第一行为简短描述,后续行为详细描述。见下方格式规则。 |
架构字段参考:
| TOS 平台 | DEBIAN/control Architecture | 构建目标 |
|---|---|---|
| x86_64 / amd64 | amd64 | x86_64-pc-linux-gnu |
| aarch64 / arm64 | arm64 | aarch64-linux-gnu |
常见错误:
- 在 DEBIAN/control 中使用
x86_64→ 必须使用amd64 - 注意:TOS 7 仅支持 64 位架构(x86_64 和 aarch64),不支持 32 位 ARM(armhf/armel)。
Description 字段格式:
- 第 1 行:简短描述(最多 80 字符,无前导空格)
- 后续行:详细描述(每行必须以一个空格开头,每行最多 80 字符)
- 描述中的空行必须包含一个空格和一个句点:
.
示例:
Description: 软件包的简短摘要
这是详细描述。
可以跨多行,
每行以一个空格开头。
.
这是一个新段落。
双包模式
双包模式适用于已有通用标准 deb 包的应用,源包保持不变,额外提供应用数据包。
应用数据包 DEBIAN/control:
Package: <appid>
Version: <version>
Architecture: all
Section: utils
Priority: optional
Maintainer: 开发者名称 <your.email@example.com>
Depends: <package> (>= <version>)
Description: 应用数据包 - <应用名称>
TerraMaster App Center metadata package for <应用名称>.
命名说明: 数据包包名使用
<appid>(建议与 config.ini.id 保持一致),源包包名使用<package>(即原应用默认包名)。数据包通过Depends字段声明对源包的依赖。
双包字段关联规则:
| 字段 | 数据包 | 源包 | 关联要求 |
|---|---|---|---|
Package | <appid> | <package> | 数据包包名建议与 config.ini.id 保持一致 |
Version | <version> | <version> | 必须完全一致 |
Architecture | all | amd64/arm64 | 数据包通常为 all,源包为实际架构 |
config.ini 字段关联:
| 字段 | 关联说明 |
|---|---|
config.ini.package | 必须和数据包的元数据 package 对应 |
config.ini.version | 必须和数据包的元数据 version 对应 |
config.ini.system_id | 必须和源包的 systemd 服务 id 对应 |
config.ini.path(外部打开时) | 必须对应 nginx 配置文件的路由,解析到源包对外提供的 <listen_port> |
数据包内部文件结构:
<appid>.deb
├── DEBIAN/
│ └── control
└── usr/
└── local/
└── <appid>/
├── config.ini
├── <appid>.lang
├── images/
│ └── icons/
│ └── <appid>.svg
└── nginx/ # 仅外部打开需要
└── <appid>.conf
源包内部文件结构:
<package>.deb
├── DEBIAN/
│ ├── control
│ ├── preinst
│ ├── postinst
│ ├── prerm
│ └── postrm
└── usr/
└── local/
└── <appid>/
├── bin/
│ └── <binary_name>
└── init.d/
└── <system_id>.service