当前位置: 首页 > news >正文

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.deb

2.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.exe

3.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 修改版本信息

需要更新以下文件中的版本号:

  1. info文件
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/opt/apps/com.qq.im.deepin/info
  1. run.sh脚本
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/opt/apps/com.qq.im.deepin/files/run.sh
  1. DEBIAN/control文件
sed -i 's/9.3.2/9.4.8/g' qq-update/extract/DEBIAN/control

4. 依赖与兼容性检查

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社区。通常需要:

  1. 准备更新日志
  2. 提供构建脚本
  3. 说明测试情况
  4. 提交Pull Request到官方仓库

记住,作为维护者,你的工作不仅仅是更新版本号,更重要的是确保新版本在Deepin环境下的稳定性和兼容性。

http://www.cnnetsun.cn/news/2002999.html

相关文章:

  • 你的竞争对手已经用 AI 实现规模化复制,你还在靠个人能力撑着? 2026企业数字化转型避坑指南
  • Axure中文语言包:3分钟极速汉化指南,让原型设计更高效
  • CSS项目样式如何模块化_应用BEM规范构建组件化逻辑
  • 不止于安装:Manjaro下软件‘突然打不开’的深度排查与修复实战(以微信/Postman为例)
  • CentOS 7.9上Open vSwitch 2.12.0保姆级安装与开机自启配置(附systemd服务文件)
  • 【Hot 100 刷题计划】 LeetCode 287. 寻找重复数 | C++ 数组判环 (快慢指针终极解法)
  • Go语言的runtime.SetFinalizer终结器与对象生命周期中的清理钩子
  • C++ Primer 第5版源码怎么用?手把手教你用GCC和VS2012跑通书里的例子
  • 别再手动改Word了!用Python的docxtpl+Jinja2,5分钟搞定100份合同/报告模板
  • 从实验室到生产:手把手教你用 Open vSwitch (OVS) 在 Ubuntu 上搭建虚拟网络沙盒环境
  • 【CE】Mac逆向入门:从零到一掌握Cheat Engine基础扫描四部曲
  • OpenCV-Python实战:手把手教你用cv2.remap()修复畸变图像(以鱼眼镜头校正为例)
  • 数据殖民主义:AI伦理红线——面向软件测试从业者的审视
  • 五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括
  • 告别虚拟机!用Docker Desktop在Windows 10上5分钟快速搭建一个CentOS开发环境
  • 【Linux从入门到精通】第7篇:Vim编辑器生存指南——从“如何退出”到“指法如飞”
  • STM32 SPI刷屏太慢?试试DMA+中断优化,实测刷屏时间从XXms降到387ms
  • VGA时序详解与FPGA实现避坑指南:从800x600@60Hz到你的第一幅图像
  • DiskGenius系统迁移翻车实录:我踩过的3个坑,希望你别再跳了
  • 【紧急预警】Dify v0.6.10+版本在国产飞腾服务器上触发向量索引错位——已验证的3步热修复方案(仅限前200名农科院用户)
  • 别再手动抄数据了!用NI-VISA和C语言自动读取仪器数据的保姆级教程
  • 如何使己有的应用程序自动化 - 条件结构
  • 别再只盯着SATA了!手把手教你用QEMU模拟器调试老式IDE硬盘的I/O端口(0x1F0-0x3F7)
  • 告别数据乱码!深入调试HC32 UART:用逻辑分析仪抓包分析时序与错误
  • 题解:洛谷 AT_abc362_c [ABC362C] Sum = 0
  • 别再死记硬背公式了!Allegro通孔焊盘尺寸计算与Flash热风焊盘制作,一个视频讲透
  • 如何用 http 模块创建一个基础的 Web 服务器处理请求
  • 题解:AcWing 1128 信使
  • 基于改进YOLOv5的无人机航拍小目标检测算法研究
  • 终极指南:如何用OCAT轻松搞定OpenCore配置难题