打包与校验
Deb 包文件名命名规范:
- 单包模式:
<appid>_<version>_<arch>.deb- 示例:
myapp_1.0.0_amd64.deb
- 示例:
- 数据包:
<appid>_<version>_all.deb- 示例:
myapp_1.0.0_all.deb
- 示例:
- 压缩包:
<appid>_<platform>.tar.gz(双包模式包含两个 .deb 文件)- 示例:
weather_x86_64.tar.gz(即应用ID_平台.tar.gz) - 命名规则:
config.ini.id_config.ini.platform.tar.gz
- 示例:
Lintian 校验要求:
- 所有
Error(E) 级别问题必须在提交前修复 Warning(W) 级别问题应审查;平台关键警告必须修复Info(I) 级别问题为信息性,可选处理- 仅对已记录、有意的偏差使用
lintian --suppress-tags=<tag>
双包压缩包结构:
.tar.gz 压缩包必须具有以下结构:
<appid>_<platform>.tar.gz
├── <appid>.deb # 应用数据包(建议与 config.ini.id 保持一致)
└── <package>.deb # deb源包(名称默认即可,无需修改)
压缩包根目录不得包含子目录 — .deb 文件必须位于压缩包根级别。
说明:
<appid>.deb:deb数据包,通过当前包可以在应用中心对包进行展示操作等<package>.deb:deb源包,用于完成deb服务功能
方式一:单包模式
步骤1:构建 Deb 包
dpkg-deb --build ./<应用根目录> ./<appid>_<version>_amd64.deb
步骤2:校验包
dpkg-deb -c <appid>_<version>_amd64.deb
dpkg-deb -I <appid>_<version>_amd64.deb
lintian <appid>_<version>_amd64.deb # 如有 lintian
步骤3:生成校验和
sha256sum <appid>_<version>_amd64.deb > <appid>_<version>_amd64.deb.sha256
步骤4:测试安装
sudo dpkg -i <appid>_<version>_amd64.deb
sudo systemctl status <system_id>
sudo dpkg --purge <appid> # 卸载
方式二:双包模式
步骤1:构建deb源包
dpkg-deb --build ./<应用根目录> ./<package>.deb
步骤2:构建deb数据包
mkdir -p /tmp/<appid>/DEBIAN
mkdir -p /tmp/<appid>/usr/local/<appid>
# 复制 TOS 7.0 配置文件到数据包
cp config.ini /tmp/<appid>/usr/local/<appid>/
cp <appid>.lang /tmp/<appid>/usr/local/<appid>/
cp -r images /tmp/<appid>/usr/local/<appid>/
# 如果是外部打开,还需复制 nginx 配置
cp -r nginx /tmp/<appid>/usr/local/<appid>/ 2>/dev/null || true
# 创建 DEBIAN/control(参见 8.13.2)
# ...
# 构建数据包
dpkg-deb --build /tmp/<appid> ./<appid>.deb
步骤3:打包提交压缩文件
tar -czf <appid>_<platform>.tar.gz <appid>.deb <package>.deb
步骤4:校验、校验和、测试安装
# 校验
dpkg-deb -c <package>.deb && dpkg-deb -I <package>.deb
dpkg-deb -c <appid>.deb && dpkg-deb -I <appid>.deb
# 校验和
sha256sum <appid>_<platform>.tar.gz > <appid>_<platform>.tar.gz.sha256
# 测试安装
sudo dpkg -i <package>.deb
sudo dpkg -i <appid>.deb
sudo systemctl status <system_id>