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

别再到处找安装包了!手把手教你用Deepin-Wine把Windows版QQ打包成Deb,在UOS/Deepin上自己动手

深度定制:用Deepin-Wine打造专属Windows软件Deb包的终极指南

每次打开UOS或Deepin的应用商店,发现QQ版本还停留在两年前,而同事的Windows电脑上早已用上了最新功能——这种体验对Linux桌面用户来说太熟悉了。官方软件源更新滞后的问题,让许多用户不得不放弃心仪的功能,或者冒险使用来路不明的第三方打包。其实,你完全有能力自己动手,将最新版Windows软件打包成可靠的Deb安装包,彻底摆脱版本滞后的困扰。

1. 为什么需要自己打包Windows软件

Linux桌面生态一直面临着软件匮乏的挑战,特别是国内常用软件的支持往往不尽如人意。Deepin团队开发的Deepin-Wine技术,通过在Linux上运行Windows程序,部分缓解了这一难题。但官方仓库的软件版本更新速度,常常跟不上Windows原版的节奏。

自己打包Windows软件到Deb包的核心优势在于:

  • 版本自由:不再受限于发行版维护者的更新节奏,随时可以使用最新版本
  • 功能完整:官方原版的所有功能都能得到保留,避免社区版可能的阉割
  • 系统集成:打包后的Deb可以完美融入系统,像原生应用一样管理
  • 个性定制:可以按需调整软件配置,加入自己需要的补丁或插件

提示:虽然本文以QQ为例,但同样的方法适用于大多数基于Deepin-Wine的Windows软件打包,如微信、钉钉等。

2. 准备工作与环境配置

2.1 基础工具安装

在开始之前,确保你的Deepin或UOS系统已经安装了必要的工具:

sudo apt update sudo apt install p7zip-full deepin-wine5 dpkg-dev -y

这些工具各司其职:

  • p7zip:用于处理压缩文件
  • deepin-wine5:运行Windows程序的核心环境
  • dpkg-dev:构建Deb包所需的工具链

2.2 创建纯净的Wine容器

为了避免与系统已有配置冲突,我们为QQ创建一个独立的Wine容器:

WINEARCH=win32 WINEPREFIX=~/.deepinwine/qq deepin-wine5 winecfg

这条命令做了三件事:

  1. WINEARCH=win32指定创建32位环境(多数Windows软件兼容性更好)
  2. WINEPREFIX设置容器的存储位置
  3. winecfg初始化配置并生成容器目录

2.3 解决中文显示问题

Windows程序在Linux下常见的中文乱码问题,通常是由于字体缺失造成的。将中文字体复制到Wine容器的字体目录:

cp ./simsun.ttc ~/.deepinwine/qq/dosdevices/c:/windows/Fonts/ cp ./simsun.ttc ~/.deepinwine/qq/dosdevices/c:/windows/Fonts/Tahoma.ttc

3. 软件安装与初始配置

3.1 获取最新版QQ安装包

直接从腾讯官网下载最新版的QQ安装程序:

wget https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2021.exe

注意:URL中的版本号可能会随时间变化,建议访问官网获取最新下载链接。

3.2 在Wine容器中安装QQ

使用指定前缀运行安装程序:

WINEPREFIX=~/.deepinwine/qq deepin-wine5 PCQQ2021.exe

安装过程中,Wine会模拟Windows环境,所有文件将被安装到~/.deepinwine/qq虚拟的C盘中。安装完成后,你可以在以下位置找到相关文件:

  • 桌面图标~/.local/share/icons/hicolor/
  • 快捷方式~/.local/share/applications/

4. 逆向工程官方Deb包

4.1 获取基础模板包

我们需要一个官方QQ的Deb包作为模板,从中提取打包所需的框架:

apt download com.qq.im.deepin

这个命令会下载当前仓库中的QQ Deb包,而不会安装它。

4.2 解包分析结构

Deb包实际上是一个ar归档文件,包含三个主要部分:

  1. debian-binary:格式版本号
  2. control.tar.gz:包含包的控制信息
  3. data.tar.gz:包含实际要安装的文件

我们使用dpkg工具解包:

mkdir -p package/extract/DEBIAN dpkg -x com.qq.im.deepin_9.3.2deepin20_i386.deb package/extract/ dpkg -e com.qq.im.deepin_9.3.2deepin20_i386.deb package/extract/DEBIAN/

解包后的目录结构如下:

package/ └── extract/ ├── DEBIAN/ │ ├── control │ ├── md5sums │ └── ... └── opt/ └── apps/ └── com.qq.im.deepin/ ├── entries/ ├── files/ └── info

5. 关键文件修改与定制

5.1 更新版本信息

我们需要修改多处版本号以匹配新安装的QQ版本:

sed -i 's@9.3.2@9.4.8@g' package/extract/opt/apps/com.qq.im.deepin/info sed -i 's@9.3.2@9.4.8@g' package/extract/opt/apps/com.qq.im.deepin/files/run.sh sed -i 's@9.3.2@9.4.8@g' package/extract/DEBIAN/control

info文件是Deepin软件包的核心配置文件,其结构如下:

{ "appid": "com.qq.im.deepin", "name": "QQ", "version": "9.4.8deepin20", "arch": ["i386"], "permissions": { "autostart": false, "notification": false, "trayicon": true, "clipboard": true, "account": false, "bluetooth": false, "camera": true, "audio_record": true, "installed_apps": false } }

5.2 替换核心文件

将我们新安装的QQ文件替换模板包中的旧版本:

cd package/extract/opt/apps/com.qq.im.deepin/files rm files.7z 7z a files.7z ~/.deepinwine/qq/*

这个步骤将整个Wine容器压缩打包,替换原有的files.7z文件。7z格式提供了较好的压缩率,适合包含大量小文件的Windows程序。

6. 构建最终的Deb包

6.1 生成文件校验信息

为确保包完整性,我们需要为所有文件生成MD5校验和:

cd package find extract/opt -type f -print0 | xargs -0 md5sum > md5sums mv md5sums extract/DEBIAN/md5sums

6.2 执行打包命令

一切准备就绪后,使用dpkg-deb工具构建最终的Deb包:

mkdir build dpkg-deb -b extract/ build/

成功执行后,你会在build目录下找到新生成的Deb包,文件名类似于com.qq.im.deepin_9.4.8deepin20_i386.deb

7. 测试与安装

7.1 清理测试环境

在安装新包之前,建议清理之前的Wine容器以避免冲突:

rm -rf ~/.deepinwine/qq

7.2 安装自定义包

使用dpkg安装你亲手打造的Deb包:

sudo dpkg -i build/com.qq.im.deepin_9.4.8deepin20_i386.deb

安装完成后,你可以在应用菜单中找到QQ,它将以最新版本运行,同时完美集成到Deepin/UOS的桌面环境中。

7.3 常见问题排查

如果遇到问题,可以检查以下几个方面:

  1. 版本号一致性:确保所有文件中的版本号都已正确更新
  2. 文件权限:检查打包过程中是否有文件权限被意外修改
  3. 依赖关系:使用sudo apt install -f修复可能的依赖问题
  4. Wine配置:如果程序无法启动,尝试重新创建Wine容器

8. 进阶技巧与扩展应用

掌握了基本打包方法后,你可以进一步优化和扩展:

  • 多版本共存:通过修改appid和安装路径,实现同一软件的多个版本并存
  • 预配置:在打包前对Wine容器进行调优,如注册表修改、DLL覆盖等
  • 自动更新:编写脚本自动检测新版本并重新打包
  • 界面美化:替换程序图标和桌面文件,使其更符合Linux桌面风格

对于需要频繁更新的软件,可以考虑将整个过程脚本化。下面是一个简化版的自动化脚本框架:

#!/bin/bash VERSION="9.4.8" DOWNLOAD_URL="https://down.qq.com/qqweb/PCQQ/PCQQ_EXE/PCQQ2021.exe" # 清理旧容器 rm -rf ~/.deepinwine/qq # 创建新容器并安装QQ WINEARCH=win32 WINEPREFIX=~/.deepinwine/qq deepin-wine5 winecfg cp simsun.ttc ~/.deepinwine/qq/dosdevices/c:/windows/Fonts/ wget -O PCQQ.exe "$DOWNLOAD_URL" WINEPREFIX=~/.deepinwine/qq deepin-wine5 PCQQ.exe # 打包过程 apt download com.qq.im.deepin mkdir -p package/extract/DEBIAN dpkg -x com.qq.im.deepin_*.deb package/extract/ dpkg -e com.qq.im.deepin_*.deb package/extract/DEBIAN/ # 更新版本信息 sed -i "s@9.3.2@$VERSION@g" package/extract/opt/apps/com.qq.im.deepin/info sed -i "s@9.3.2@$VERSION@g" package/extract/opt/apps/com.qq.im.deepin/files/run.sh sed -i "s@9.3.2@$VERSION@g" package/extract/DEBIAN/control # 替换文件 cd package/extract/opt/apps/com.qq.im.deepin/files rm -f files.7z 7z a files.7z ~/.deepinwine/qq/* # 构建deb包 cd ../../../../../.. find package/extract/opt -type f -print0 | xargs -0 md5sum > package/md5sums mv package/md5sums package/extract/DEBIAN/ mkdir -p package/build dpkg-deb -b package/extract/ package/build/

这个脚本可以保存为update-qq.sh,每次需要更新时,只需修改版本号和下载URL,然后运行脚本即可自动完成所有步骤。

http://www.jsqmd.com/news/661085/

相关文章:

  • G-Helper:华硕笔记本的轻量控制革命,告别臃肿原生软件
  • FanControl终极指南:Windows系统风扇控制与静音散热完整解决方案
  • 终极指南:3步实现百度网盘Mac版免费高速下载
  • 从ARM汇编ldrex/strex入手,彻底搞懂Linux原子操作的硬件实现原理
  • 单机版神魔大陆v0.51.0架设指南:从零开始的冰火荣耀之旅
  • LangGPT结构化提示词设计:5分钟从新手到专家的终极指南
  • 为什么92%的AI生成代码在CI/CD阶段失败?3步诊断法+4个不可绕过的语义断点检测规则
  • 3分钟掌握EmojiOne Color:免费彩色表情字体完全指南
  • 【智能代码生成与代码自愈融合实战指南】:20年架构师亲授3大落地范式、5类典型故障自愈闭环及企业级集成避坑清单
  • DAMOYOLO-S模型API安全设计:身份认证、限流与访问日志
  • 让老旧Windows游戏在Linux上流畅运行:DXVK技术深度解析与实战应用
  • 构建高性能HDF5数据可视化架构:ViTables模块化设计指南
  • Akagi雀魂AI辅助工具:从麻将新手到高手的完整指南
  • 开源SDXL-Turbo镜像部署:利用GPU算力实现高性能渲染
  • 3大场景+5分钟配置:Winhance让你的Windows系统重获新生
  • 揭秘B站缓存视频转换黑科技:4步解锁m4s格式封印,实现永久离线收藏
  • AI代码合并的“奇点时刻”已至:2026奇点大会现场演示零人工干预完成Linux内核v6.12-rc3跨分支合并,完整技术链路与17项约束条件全公开
  • 别再复制粘贴了!手把手教你用CMake和VS2017编译Glog v0.5.0(Windows 10环境)
  • 终极Windows优化指南:5个简单步骤用Winhance中文版提升系统性能
  • HALCON新手必看:dev_display不只是显示图像,这些隐藏功能你用过吗?
  • 【awinic inside】精准力控,真实触感 | 艾为Haptic+Force Soc ,助力小米Book Pro 14触控新体验!
  • uni-app分包实战:巧解echarts.js体积难题,提升小程序启动速度
  • QuickLook Office预览插件终极指南:高效预览Office文档的完整解决方案
  • 解密ExDark低光照图像数据集:构建夜间视觉AI的完整技术栈
  • WPF开发实战:利用Live Charts打造动态交互式柱状图
  • 基于可达性分析的时间最优路径参数化:toppra在机器人运动规划中的技术突破
  • WAN2.2文生视频参数设置指南:视频尺寸、时长如何选效果最好
  • LaserGRBL:从零开始掌握激光雕刻的完整免费指南
  • 从Win32 API到ACLLib:浙大翁恺老师如何为C语言初学者‘封装’出一个图形库?
  • 如何在Windows上使用FlicFlac免费音频转换工具处理7种音频格式