概述
Deb 应用是直接运行在 TOS 7 宿主系统上的原生包。遵循标准 Debian 打包规范,并针对 TOS 服务管理和平台集成进行了适配。
TOS 7 的 Deb 应用根据是否有前端页面以及打开方式,分为 三种子类型:
| 子类型 | 适用场景 | 打开方式 | 后端通信方式 |
|---|---|---|---|
| WebUI 内部打开 | 后端为本地可执行服务、前端为静态 WebUI | TOS 桌面内嵌 iframe | Unix Socket + 平台代理 |
| WebUI 外部打开 | 后端为本地可执行服务、前端为静态 WebUI | 浏览器新标签页 | Nginx 反向代理 + HTTP 端口 |
| 无 UI 服务 | 没有操作页面的后台服务 | 无前端页面 | 按需(无强制要求) |
子类型选择强制约束:
| 应用特性 | 必须使用的子类型 |
|---|---|
| 有 Web UI 且必须在 TOS 桌面内打开 | WebUI 内部打开(iframe) |
| 有 Web UI 且必须在浏览器标签页打开 | WebUI 外部打开(新标签页) |
| 无前端/后台守护服务 | 无 UI 服务 |
| 需要通过 TOS 文件管理器访问设备文件系统 | WebUI 内部或外部打开 — 如果应用需要用户在 TOS 文件管理器中选择文件路径,必须提供 WebUI(内部或外部打开均可),以便嵌入文件选择器组件。 |
TOS 7 的 Deb 应用支持 两种打包方式:
| 打包方式 | 适用场景 | 说明 |
|---|---|---|
| 方式一:单包模式 | 从零开发的新应用 | 开发者按照 TOS 7.0 规范直接开发,将所有文件集成到单个 deb 包中 |
| 方式二:双包模式(也称压缩包模式) | 已有通用标准 deb 包的应用 | 原应用安装包(deb源包)保持不变,额外提供一个符合 TOS 7.0 规范的数据包(<appid>.deb),两者打包为 tar.gz 压缩包提交 |
双包模式适用规则:
| 场景 | 必须使用 | 禁止使用 |
|---|---|---|
| 已有通用标准 deb 包、构建复杂 | 双包模式 | — |
| 从零开发的新应用 | — | 不建议使用双包模式 — 除非有特殊理由(如需要分离配置与二进制),否则从零开发的新应用应使用单包模式。 |
| 简单二进制程序、无已有的打包 | — | 双包模式(应使用单包模式) |
| 第三方上游 Debian 包 | 双包模式 | — |
双包模式强制约束:
- 版本一致性: 数据包与源包的
Version字段必须完全一致,不一致直接驳回。 - 内容限制: 数据包(
<appid>.deb)严禁包含任何二进制文件,否则直接驳回。 - 安装顺序: 由 APT 仓库依赖机制自动保证(数据包
Depends源包),无需额外配置。 - 源包独立性: deb源包必须可以独立在 TOS 7.0 系统上使用
dpkg -i命令进行安装。 - 依赖声明: deb数据包的元数据
Depends字段,必须要写上 deb源包,最好和版本一起指定,保持健康的依赖关系。