ScreenLockDetector/PACKAGING_SUMMARY.txt

290 lines
9.3 KiB
Plaintext
Raw Normal View History

2025-11-07 14:57:13 +08:00
================================================================================
Qt Screen Lock Demo - DEB 打包配置完成总结
================================================================================
项目名称: Qt Screen Lock Demo
打包类型: DEB (Debian/Ubuntu)
版本: 1.0.0
架构: amd64
================================================================================
已创建的文件清单
================================================================================
【核心打包脚本】
✓ make_deb.sh - 快速打包脚本(推荐日常使用)
✓ build_deb.sh - 完整打包脚本(详细日志,推荐发布)
✓ create_icon.sh - 图标生成辅助脚本
【配置文件】
✓ screenlockdemo.desktop - 桌面快捷方式配置
✓ debian/control - DEB 包元数据信息
✓ debian/copyright - 版权和许可证信息
✓ debian/changelog - 版本更新日志
✓ debian/rules - 构建规则Makefile 格式)
✓ debian/compat - Debian 兼容性版本9
【文档】
✓ DEB_PACKAGE.md - 详细打包文档460+ 行,包含所有细节)
✓ PACKAGING_README.md - 快速入门指南
✓ PACKAGING_CHECKLIST.md - 打包测试检查清单347 行)
✓ PACKAGING_SUMMARY.txt - 本总结文档
================================================================================
快速开始指南
================================================================================
【第一步:环境检查】
1. 检查 linuxdeployqt 工具:
$ ls -lh $HOME/dev/sunvpack-py/bin/linuxdeployqt
2. 检查 Qt 5.15.2:
$ ls -d $HOME/sdk/qt-5.15.2
3. 检查打包工具:
$ dpkg-deb --version
【第二步:执行打包】
方法1 - 快速打包(推荐):
$ chmod +x make_deb.sh
$ ./make_deb.sh
方法2 - 详细打包:
$ chmod +x build_deb.sh
$ ./build_deb.sh
【第三步:测试安装】
$ sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
$ screenlockdemo
【第四步:卸载】
$ sudo dpkg -r screenlockdemo
================================================================================
打包原理说明
================================================================================
【linuxdeployqt 的作用】
1. 扫描可执行文件的动态链接依赖
2. 自动复制所有 Qt 5.15.2 库到打包目录
3. 复制 Qt 插件platforms, imageformats 等)
4. 复制其他系统依赖库
5. 设置正确的 RPATH确保程序使用打包的库
【打包流程】
[1/6] 清理目录
[2/6] 编译项目(如需要)
[3/6] 创建 AppDir 结构
[4/6] 使用 linuxdeployqt 收集所有依赖 ← 核心步骤
[5/6] 创建 DEB 包目录结构
[6/6] 构建 DEB 包
【最终 DEB 包结构】
/opt/screenlockdemo/
├── bin/ScreenLockDemo - 主程序
├── lib/ - Qt 和依赖库(所有 .so 文件)
├── plugins/ - Qt 插件
└── screenlockdemo.sh - 启动包装脚本
/usr/bin/screenlockdemo - 系统命令(链接)
/usr/share/applications/ - 桌面快捷方式
/usr/share/icons/ - 应用图标
【为什么这样打包?】
✓ 隔离依赖:所有 Qt 库打包在 /opt 下,不依赖系统 Qt
✓ 避免冲突:不会与系统已安装的 Qt 版本冲突
✓ 易于部署:一个包包含所有依赖,可在不同 Ubuntu 版本运行
✓ 便于维护:应用程序自带所有必需库,减少部署问题
================================================================================
DEB 包信息
================================================================================
包名: screenlockdemo
版本: 1.0.0-1
架构: amd64
预计大小: 50-80 MB包含完整 Qt 5.15.2
依赖:
- dbus
- libx11-6
- libxext6
- libxrender1
- libfontconfig1
- libfreetype6
- libglib2.0-0
- libgl1
================================================================================
测试要点
================================================================================
【安装后必须测试】
□ 命令行启动: screenlockdemo
□ 应用菜单启动
□ 主界面显示正常
□ 动画效果正常
□ 锁屏检测Ctrl+Alt+L- 动画应停止
□ 解锁后动画自动恢复
□ 手动控制按钮功能正常
□ 无错误信息和崩溃
【验证依赖正确】
$ ldd /opt/screenlockdemo/bin/ScreenLockDemo
应看到 Qt 库路径指向 /opt/screenlockdemo/lib/
【卸载后检查】
$ sudo dpkg -r screenlockdemo
$ ls /opt/screenlockdemo/ # 应该不存在
================================================================================
常见问题速查
================================================================================
【问题1】linuxdeployqt 未找到
检查: ls $HOME/dev/sunvpack-py/bin/linuxdeployqt
修改: 编辑脚本中的 LINUXDEPLOYQT 变量
【问题2】Qt 目录未找到
检查: ls $HOME/sdk/qt-5.15.2
修改: 编辑脚本中的 QT_DIR 变量
【问题3】程序无法启动
诊断: /opt/screenlockdemo/bin/ScreenLockDemo
检查: ldd /opt/screenlockdemo/bin/ScreenLockDemo
修复: sudo apt-get install libgl1 libx11-6 libxcb-xinerama0
【问题4】Qt 平台插件错误
错误: "Could not load the Qt platform plugin xcb"
检查: ls /opt/screenlockdemo/plugins/platforms/libqxcb.so
修复: sudo apt-get install libxcb-xinerama0 libxcb-icccm4
【问题5】图标不显示
修复: sudo gtk-update-icon-cache -f /usr/share/icons/hicolor
sudo update-desktop-database
================================================================================
修改版本号
================================================================================
需要修改以下文件中的版本号:
1. make_deb.sh (第7行)
VERSION="1.0.0" → VERSION="1.0.1"
2. build_deb.sh (第14行)
VERSION="1.0.0" → VERSION="1.0.1"
3. debian/changelog (第1行)
screenlockdemo (1.0.0-1) → screenlockdemo (1.0.1-1)
4. CMakeLists.txt (第2行)
project(ScreenLockDemo VERSION 1.0.0 ...)
================================================================================
优化建议
================================================================================
【减小包体积】
- 使用 strip 命令去除调试符号
- 排除不需要的 Qt 插件
- 只包含必需的 Qt 模块
【添加真实图标】
1. 创建 256x256 PNG 图标
2. 保存为 icon.png
3. 运行 ./create_icon.sh 或直接使用
【自定义包信息】
编辑 debian/control:
- Maintainer: 您的名字和邮箱
- Description: 更详细的描述
- Homepage: 项目主页
================================================================================
文档资源
================================================================================
详细文档:
- DEB_PACKAGE.md - 完整打包指南460+ 行)
- PACKAGING_README.md - 快速参考334 行)
- PACKAGING_CHECKLIST.md - 测试检查清单347 行)
项目文档:
- README.md - 项目说明和使用指南
- ARCHITECTURE.md - 架构设计文档
- QUICKSTART.md - 快速开始指南
================================================================================
命令速查表
================================================================================
# 打包
./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
================================================================================
发布流程建议
================================================================================
1. 更新版本号(见上文)
2. 更新 debian/changelog
3. 运行完整打包: ./build_deb.sh
4. 在测试环境安装测试
5. 运行完整功能测试(参考 PACKAGING_CHECKLIST.md
6. 生成校验和
7. 准备发布说明
8. 发布 DEB 包
================================================================================
结语
================================================================================
✓ DEB 打包配置已完成!
✓ 使用 linuxdeployqt 自动收集所有 Qt 5.15.2 依赖
✓ 支持独立部署,无需系统安装 Qt
✓ 包含完整的文档和测试清单
【下一步】
1. 运行 ./make_deb.sh 生成 DEB 包
2. 安装测试: sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
3. 功能测试: screenlockdemo
4. 查看详细文档: cat DEB_PACKAGE.md
【获取帮助】
- 打包问题: 查看 DEB_PACKAGE.md 的"常见问题"章节
- 测试指南: 使用 PACKAGING_CHECKLIST.md
- 快速参考: 查看 PACKAGING_README.md
祝打包顺利!🚀
================================================================================
创建日期: 2024-01-01
最后更新: 2024-01-01
版本: 1.0.0
================================================================================