Skip to main content

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包分类(如 utilswebnet)。
Priority通常为 optional
Maintainer✅ 是开发者名称和邮箱。
Depends建议运行时依赖。声明所有必需的系统库和包。
Description✅ 是第一行为简短描述,后续行为详细描述。见下方格式规则。

架构字段参考:

TOS 平台DEBIAN/control Architecture构建目标
x86_64 / amd64amd64x86_64-pc-linux-gnu
aarch64 / arm64arm64aarch64-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>必须完全一致
Architectureallamd64/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