Deepin/UOS软件包维护者入门:如何手动更新一个deepin-wine应用的版本(从9.3.2到9.4.8实战)
Deepin/UOS软件包维护实战:从9.3.2到9.4.8的版本升级全解析
当你在Deepin应用商店发现某个wine应用的版本落后于官方发布时,作为社区贡献者或软件包维护者,你有能力推动这个生态向前一步。本文将带你深入deb包内部结构,完成一次合规的版本升级实战。
1. 理解deepin-wine应用架构
在开始动手之前,我们需要先理解deepin-wine应用的特殊打包方式。与传统deb包不同,deepin-wine应用采用了一种容器化的打包方案:
/opt/apps/com.qq.im.deepin/ ├── entries │ ├── applications │ └── icons ├── files │ └── (包含完整的wine容器) └── info (应用元数据)这种结构将Windows应用的运行环境完全封装在files目录中,而info文件则定义了应用的基本属性。理解这一点对后续的版本升级至关重要。
2. 准备工作与环境搭建
2.1 获取原始软件包
首先需要获取当前仓库中的旧版本deb包:
apt download com.qq.im.deepin这将下载当前仓库中的版本(假设为9.3.2)。我们可以使用以下命令查看包内容:
dpkg -c com.qq.im.deepin_9.3.2deepin20_i386.deb2.2 解包分析
创建一个工作目录并解压deb包:
mkdir -p qq-update/extract/DEBIAN dpkg -x com.qq.im.deepin_9.3.2deepin20_i386.deb qq-update/extract/ dpkg -e com.qq.im.deepin_9.3.2deepin20_i386.deb qq-update/extract/DEBIAN/现在你应该能看到完整的包结构。特别关注以下几个关键文件:
extract/DEBIAN/control:包的控制信息extract/opt/apps/com.qq.im.deepin/info:应用元数据extract/opt/apps/com.qq.im.deepin/files/run.sh:启动脚本
3. 版本升级核心步骤
3.1 获取新版Windows应用
从QQ官网下载最新版本的安装包:
wget https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2021.exe3.2 创建干净的wine容器
为了避免旧版本残留问题,建议新建一个干净的wine容器:
WINEARCH=win32 WINEPREFIX=~/qq-new winecfg然后安装新版QQ:
WINEPREFIX=~/qq-new wine PCQQ2021.exe安装完成后,测试应用是否能正常运行,确保没有明显的兼容性问题。
3.3 更新包内容
将新容器打包替换旧版本:
rm qq-update/extract/opt/apps/com.qq.im.deepin/files.7z 7z a qq-update/extract/opt/apps/com.qq.im.deepin/files.7z ~/qq-new/*3.4 修改版本信息
需要更新以下文件中的版本号:
- info文件:
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/opt/apps/com.qq.im.deepin/info- run.sh脚本:
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/opt/apps/com.qq.im.deepin/files/run.sh- DEBIAN/control文件:
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/DEBIAN/control4. 依赖与兼容性检查
4.1 依赖关系验证
检查新版应用是否需要额外的依赖:
ldd ~/qq-new/drive_c/Program\ Files/Tencent/QQ/Bin/QQ.exe对比旧版本的DEBIAN/control文件中的依赖列表,确保没有遗漏。
4.2 生成新的md5校验和
cd qq-update find extract/opt -type f -print0 | xargs -0 md5sum > md5sums mv md5sums extract/DEBIAN/5. 构建与测试
5.1 打包新版本
mkdir -p qq-update/build dpkg-deb -b qq-update/extract/ qq-update/build/5.2 安装测试
sudo apt install ./qq-update/build/com.qq.im.deepin_9.4.8deepin20_i386.deb测试要点:
- 应用是否能正常启动
- 所有功能是否可用
- 是否有明显的性能下降
6. 提交更新到社区
如果测试通过,你可以考虑将更新提交到Deepin社区。通常需要:
- 准备更新日志
- 提供构建脚本
- 说明测试情况
- 提交Pull Request到官方仓库
记住,作为维护者,你的工作不仅仅是更新版本号,更重要的是确保新版本在Deepin环境下的稳定性和兼容性。
