7.9 KiB
7.9 KiB
DEB 打包检查清单
📋 打包前检查
环境检查
- linuxdeployqt 工具存在:
$HOME/dev/sunvpack-py/bin/linuxdeployqt - Qt 5.15.2 已安装:
$HOME/sdk/qt-5.15.2 - dpkg-dev 已安装:
dpkg-deb --version - 项目可以正常编译:
./build.sh - 程序可以正常运行:
./run.sh
文件检查
screenlockdemo.desktop文件存在且配置正确debian/control包信息完整debian/copyright版权信息正确debian/changelog版本号正确- 图标文件准备好(可选):
icon.png
版本检查
- 版本号已更新(如果是新版本)
make_deb.sh中的 VERSIONbuild_deb.sh中的 VERSIONdebian/changelog中的版本号CMakeLists.txt中的 VERSION
🔨 打包过程检查
执行打包
- 脚本有执行权限:
chmod +x make_deb.sh - 运行打包脚本:
./make_deb.sh - 打包过程无错误
- DEB 文件生成成功:
deb_package/screenlockdemo_1.0.0_amd64.deb
包内容检查
# 查看包信息
dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb
# 查看文件列表
dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb
- 包信息正确(名称、版本、架构、依赖)
- 包含主程序:
./opt/screenlockdemo/bin/ScreenLockDemo - 包含 Qt 库:
./opt/screenlockdemo/lib/libQt5*.so* - 包含 Qt 插件:
./opt/screenlockdemo/plugins/platforms/libqxcb.so - 包含启动脚本:
./opt/screenlockdemo/screenlockdemo.sh - 包含系统命令:
./usr/bin/screenlockdemo - 包含 desktop 文件:
./usr/share/applications/screenlockdemo.desktop - 包含图标:
./usr/share/icons/hicolor/256x256/apps/screenlockdemo.png - 包含控制脚本:
./DEBIAN/control,./DEBIAN/postinst
🧪 安装测试
基本安装
sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
- 安装成功,无错误
- 如有依赖问题,运行:
sudo apt-get install -f - 文件已安装到正确位置
文件验证
# 检查安装的文件
ls -la /opt/screenlockdemo/
ls -la /usr/bin/screenlockdemo
ls -la /usr/share/applications/screenlockdemo.desktop
/opt/screenlockdemo/目录存在/opt/screenlockdemo/bin/ScreenLockDemo可执行/opt/screenlockdemo/lib/包含所有 Qt 库/usr/bin/screenlockdemo命令存在- 桌面文件已安装
依赖验证
# 检查库依赖
ldd /opt/screenlockdemo/bin/ScreenLockDemo
- 所有依赖都能找到(not found = 0)
- Qt 库指向
/opt/screenlockdemo/lib/ - 系统库正确链接
🚀 功能测试
启动测试
- 命令行启动:
screenlockdemo成功 - 直接运行:
/opt/screenlockdemo/screenlockdemo.sh成功 - 无错误信息,无崩溃
- 窗口正常显示
界面测试
- 主窗口正常显示
- 动画正常播放(旋转圆圈、波浪效果)
- 状态信息显示正确
- 按钮响应正常
功能测试
-
锁屏检测:锁定屏幕(Ctrl+Alt+L)
- 检测器状态显示正常
- 屏幕锁定状态显示为 "🔒 LOCKED"
- 动画自动停止(Paint 事件禁用)
-
解锁检测:解锁屏幕
- 屏幕锁定状态显示为 "🔓 UNLOCKED"
- 动画自动恢复(Paint 事件启用)
-
手动控制
- "Disable Painting" 按钮可以停止动画
- "Enable Painting" 按钮可以恢复动画
- "Reset Frame Count" 按钮可以重置计数器
-
帧数统计:计数器正常工作
DBus 连接测试
# 查看程序输出
screenlockdemo 2>&1 | grep -i "dbus\|screensaver\|connected"
- 至少一个 DBus 接口连接成功
- GNOME ScreenSaver 或 systemd-logind 连接正常
- 无致命错误
应用菜单测试
- 在应用程序菜单中可以找到 "Screen Lock Demo"
- 图标显示正常(或默认图标)
- 从菜单启动成功
🖼️ 界面测试
桌面集成
- 桌面快捷方式可用
- 应用图标显示(更新图标缓存:
sudo gtk-update-icon-cache -f /usr/share/icons/hicolor) - 窗口标题正确
- 任务栏图标正确
🔄 卸载测试
卸载
sudo dpkg -r screenlockdemo
- 卸载成功,无错误
/opt/screenlockdemo/已删除/usr/bin/screenlockdemo已删除- 桌面文件已删除
- 图标已删除
清理验证
# 检查残留文件
ls -la /opt/screenlockdemo/
ls -la /usr/bin/screenlockdemo
- 无残留文件
- 应用菜单中已移除
🌍 兼容性测试
不同 Ubuntu 版本
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 23.10 / 24.04
不同桌面环境
- GNOME
- KDE Plasma
- XFCE
- Unity(如适用)
架构
- x86_64 (amd64)
- 其他架构(如需要)
📊 性能测试
资源占用
# 监控资源使用
top -p $(pgrep ScreenLockDemo)
- CPU 使用率合理(空闲时 < 5%,动画时 < 20%)
- 内存使用合理(< 100MB)
- 无内存泄漏(长时间运行)
稳定性
- 运行 1 小时无崩溃
- 多次锁屏/解锁循环测试(> 10 次)
- 快速锁定/解锁测试
- 无僵死进程
📦 包质量检查
包大小
du -h deb_package/screenlockdemo_1.0.0_amd64.deb
- 包大小合理(通常 50-80MB)
- 如需优化,考虑 strip 符号
包结构
# 检查 Lintian(Debian 包检查工具)
lintian deb_package/screenlockdemo_1.0.0_amd64.deb
- 无严重错误(E:)
- 警告(W:)可接受
- 信息(I:)已知晓
元数据
- 包名称正确:
screenlockdemo - 版本号正确:
1.0.0 - 架构正确:
amd64 - 维护者信息完整
- 描述清晰准确
- 依赖列表正确
📝 文档检查
用户文档
- README.md 完整且最新
- DEB_PACKAGE.md 说明清晰
- PACKAGING_README.md 快速入门完整
技术文档
- 打包脚本有注释
- desktop 文件配置正确
- control 文件信息准确
🚢 发布准备
最终检查
- 所有功能正常
- 无已知 bug
- 文档完整
- 版本号正确
- changelog 已更新
发布材料
- DEB 包文件
- 校验和(MD5/SHA256)
md5sum deb_package/screenlockdemo_1.0.0_amd64.deb sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb - 安装说明
- 发布说明
- 已知问题列表(如有)
✅ 最终确认
在发布前,确认以下声明:
- ✓ 我已在测试环境中完整安装并测试了 DEB 包
- ✓ 所有核心功能都经过验证并正常工作
- ✓ 包可以正常安装和卸载,无残留
- ✓ 至少在一个目标 Ubuntu 版本上测试通过
- ✓ 文档准确反映了当前版本的功能
- ✓ 版本号和 changelog 已更新
- ✓ 无已知的严重 bug
📞 问题跟踪
如果发现问题,记录以下信息:
- 问题描述:
- 重现步骤:
- 系统环境:
- 错误信息:
- 解决方案:
🎯 快速命令参考
# 打包
./make_deb.sh
# 查看包信息
dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb
dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb
# 安装
sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
sudo apt-get install -f # 如有依赖问题
# 测试
screenlockdemo
ldd /opt/screenlockdemo/bin/ScreenLockDemo
# 卸载
sudo dpkg -r screenlockdemo
# 校验和
md5sum deb_package/screenlockdemo_1.0.0_amd64.deb
sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb
检查完成日期: ___________
测试人员: ___________
版本号: ___________
测试环境: ___________
结果: □ 通过 □ 失败 □ 有条件通过
备注: