ScreenLockDetector/PACKAGING_SUMMARY.txt

290 lines
9.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

================================================================================
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
================================================================================