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

Deepin-Wine打包Windows软件避坑指南:以QQ 9.4.8为例,详解info、control和run.sh关键配置

Deepin-Wine高级打包实战从info到run.sh的深度排错手册最近在技术社区看到不少开发者抱怨明明按照教程一步步操作打包出来的Windows软件却总是报错。作为经历过无数次深夜debug的老兵我完全理解这种挫败感。今天我们就以QQ 9.4.8为例解剖Deepin-Wine打包过程中的那些魔鬼细节。1. 容器环境构建的隐藏陷阱很多教程会告诉你用WINEARCHwin32创建容器就万事大吉但实际使用中我发现32位容器对现代Windows软件的支持正在逐渐弱化。特别是当遇到以下情况时# 更可靠的容器创建命令添加dll覆盖设置 WINEPREFIX~/.deepinwine/qq deepin-wine5 winecfg在winecfg中需要特别关注函数库选项卡勾选riched20和usp10解决富文本显示问题图形选项卡取消勾选允许窗口管理器装饰窗口避免界面元素错位注意容器路径不要包含中文或空格否则run.sh脚本可能无法正确解析字体问题看似简单实则暗藏杀机。除了常规的simsun.ttc还需要特别注意缺失字体症状表现解决方案Segoe UI界面文字消失从Windows系统复制segoeui.ttfTahoma对话框乱码同时部署tahoma.ttf和tahomabd.ttfMicrosoft YaHei部分按钮无文字添加msyh.ttc到Fonts目录2. info文件的版本控制玄机info文件看似只是个简单的JSON配置但版本号格式错误会导致软件无法被应用商店识别。我踩过的坑包括{ appid: com.qq.im.deepin, version: 9.4.8deepin20, // 必须数字开头 arch: [i386], permissions: { audio_record: true // 此项为true才能使用麦克风 } }常见版本号错误模式v9.4.8含字母前缀9.4.8-beta含非数字字符9_4_8使用非法分隔符修改版本号时务必同步更新三个地方info文件中的version字段DEBIAN/control文件中的Version行run.sh脚本中的版本检查逻辑3. control文件的依赖管理艺术control文件中Depends字段的依赖声明直接决定安装成功率。经过多次测试我发现这些依赖最容易被忽略Depends: libvkd3d1 ( 1.0), # Direct3D 12支持 libgnutls30, # 解决SSL连接问题 libodbc1, # 数据库连接必需 libsdl2-2.0-0, # 游戏相关功能 deepin-wine-plugin-virtual # 虚拟化支持依赖项处理技巧使用apt-cache show查看最小版本要求对可选功能使用Recommends而非Depends冲突包声明要精确如Conflicts: deepin.com.qq.im8.9.0我曾遇到过一个典型案例用户反馈QQ无法视频通话最终发现是缺少libgstreamer-plugins-base1.0-0这个依赖项。4. run.sh脚本的调优实战run.sh是软件运行的入口脚本也是问题高发区。下面是几个关键修改点#!/bin/bash export WINEPREFIX${WINEPREFIX:-/opt/apps/com.qq.im.deepin/files} export LC_ALLzh_CN.UTF-8 # 强制中文locale export GTK_IM_MODULEfcitx # 输入法集成 # 解决高分屏模糊问题 export WINEDPI96 [ $(xrandr | grep connected | wc -l) -gt 1 ] export WINEDPI120 # 容器完整性检查 if [ ! -f $WINEPREFIX/system.reg ]; then deepin-wine5 winecfg # 自动初始化容器 fi常见run.sh故障排查启动闪退添加export WINEDEBUGerr查看错误日志无法输入中文确保包含export XMODIFIERSimfcitx托盘图标缺失需要export XDG_CURRENT_DESKTOPDeepin5. 桌面集成与MIME类型配置entries/applications目录下的.desktop文件需要特别注意这些字段[Desktop Entry] Exec/opt/apps/com.qq.im.deepin/files/run.sh -u %u # %u处理URL唤醒 MimeTypeapplication/qq;x-scheme-handler/tencent; # 协议支持 StartupWMClassQQ.exe # 窗口类名匹配关键验证步骤使用xdg-mime query default application/qq检查MIME注册通过xprop WM_CLASS获取正确的StartupWMClass用desktop-file-validate验证.desktop文件语法6. 构建过程中的校验机制很多打包问题其实源于文件权限和校验失败。这里有个增强版的打包流程# 生成更完整的md5sums find extract/opt -type f -exec md5sum {} extract/DEBIAN/md5sums # 添加postinst脚本处理首次运行配置 cat extract/DEBIAN/postinst EOF #!/bin/sh chmod 755 /opt/apps/com.qq.im.deepin/files/run.sh update-desktop-database EOF chmod 755 extract/DEBIAN/postinst # 严格模式构建 dpkg-deb --root-owner-group -Zxz -b extract/ build/构建完成后务必进行这些测试用dpkg -c检查文件布局用lintian进行静态分析在新创建的虚拟机中测试安装记得最后清理测试容器rm -rf ~/.deepinwine/qq避免残留配置影响下次打包。打包过程中如果遇到特别棘手的问题可以尝试先用官方deb包解压对比文件结构差异。

相关文章:

Deepin-Wine打包Windows软件避坑指南:以QQ 9.4.8为例,详解info、control和run.sh关键配置

Deepin-Wine高级打包实战:从info到run.sh的深度排错手册 最近在技术社区看到不少开发者抱怨:"明明按照教程一步步操作,打包出来的Windows软件却总是报错"。作为经历过无数次深夜debug的老兵,我完全理解这种挫败感。今天…...

Spring Boot 3.0实战:手把手教你搭建学生作业管理系统(附完整源码)

Spring Boot 3.0实战:从零构建现代化学生作业管理系统 在数字化教育快速发展的今天,传统的纸质作业管理模式已经无法满足现代教学需求。作为一名长期从事教育信息化建设的开发者,我深刻体会到一套高效、稳定的作业管理系统对提升教学效率的重…...

告别Python!用C++和TensorRT 7.2.3加速SuperPoint+SuperGlue,在Jetson NX上实测15+FPS

边缘计算实战:用C和TensorRT在Jetson NX上实现SuperPointSuperGlue 15FPS 当无人机需要在复杂环境中自主避障,或是服务机器人在动态场景中实时定位时,特征匹配算法的性能直接决定了系统的响应速度。传统基于Python的SuperPointSuperGlue方案在…...

AI模型上线即超预算?C#中强制启用模型常驻内存+共享权重页表+异步预热流水线的3步封顶法,保障SLA同时锁死95%成本上限

第一章:AI模型上线即超预算?C#中强制启用模型常驻内存共享权重页表异步预热流水线的3步封顶法,保障SLA同时锁死95%成本上限在高并发推理服务中,.NET 8 的默认内存管理策略常导致大型AI模型(如Llama-3-8B量化版&#xf…...

Three.js 透明贴图实战:告别模型白边与异常透明的深度调优指南

1. 透明贴图问题的典型表现与诊断 第一次在Three.js里加载带透明贴图的模型时,我盯着屏幕上那些锯齿状的白边发呆了半小时。明明在Blender里渲染正常的树叶模型,导入后边缘却像被劣质PS抠过图一样。更诡异的是,某些应该实心的部分竟然变成了半…...

中文医疗对话数据集:构建智能医疗问答系统的核心技术资产

中文医疗对话数据集:构建智能医疗问答系统的核心技术资产 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 中文医疗对话数据…...

手机变身应急神器:如何用EtchDroid在电脑崩溃时制作启动盘

手机变身应急神器:如何用EtchDroid在电脑崩溃时制作启动盘 【免费下载链接】EtchDroid An application to write OS images to USB drives, on Android, no root required. 项目地址: https://gitcode.com/gh_mirrors/et/EtchDroid 深夜,你正在为…...

中文医疗对话数据集:79万条专业数据如何重塑医疗AI的未来

中文医疗对话数据集:79万条专业数据如何重塑医疗AI的未来 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 在医疗人工智能技…...

大模型二面:如何设计实现一个 LLM Gateway ?

1. 题目分析当你的系统只调用一个模型、一个 Provider 的时候,一切看起来都很简单——拼好 Prompt,发个 HTTP 请求,拿到结果。但当业务做大以后,你会发现自己同时在用 GPT-4o 处理复杂推理、用 Claude 做长文档分析、用开源模型跑…...

别再让Unity微信小游戏里的中文变‘口口’了!手把手教你用Custom Set搞定字体(附自动扫描脚本)

Unity微信小游戏中文显示终极解决方案:Custom Set字体优化实战 微信小游戏平台正成为越来越多Unity开发者的新战场,但WebGL环境的特殊限制常常让中文字体显示成为棘手难题。当游戏界面突然出现大量"口口"乱码时,不仅影响用户体验&a…...

自动驾驶图像增强技术:雨雪效果模拟与实现

1. 图像增强技术解析:为自动驾驶训练数据添加雨雪效果去年参与某自动驾驶项目时,我们遇到了一个棘手问题:测试车辆在雨雪天气的识别准确率骤降30%。原因很简单——训练数据集里99%都是晴天场景。这个经历让我深刻认识到,通过图像增…...

PHP PDF生成实战指南:5个高效HTML转PDF方案对比与避坑技巧

PHP PDF生成实战指南:5个高效HTML转PDF方案对比与避坑技巧 【免费下载链接】html2pdf OFFICIAL PROJECT | HTML to PDF converter written in PHP 项目地址: https://gitcode.com/gh_mirrors/ht/html2pdf 在当今企业数字化转型浪潮中,PDF文档生成…...

从CVE-2024-3094到2026规范第4.2.8条:一次供应链后门事件如何倒逼全球C标准重构?揭秘被删减的3版草案中的“幽灵条款”

第一章:现代 C 语言内存安全编码规范 2026 对比评测报告概述本报告系统性评估了五项主流 C 语言内存安全编码规范在 2026 年度的演进状态,涵盖 ISO/IEC TS 17961:2023(C Secure)、CERT C Coding Standard(2026 Edition…...

TwitchDropsMiner完整指南:三步实现零带宽自动获取游戏掉落

TwitchDropsMiner完整指南:三步实现零带宽自动获取游戏掉落 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trending/t…...

别再手动调参了!用Auto Lidar2Cam Calibration搞定相机雷达标定(附ROS Melodic + Gazebo9避坑指南)

自动驾驶开发者的福音:Auto Lidar2Cam Calibration全流程实战解析 当激光雷达点云与相机图像无法完美对齐时,整个感知系统就像近视眼没戴眼镜——模糊不清。传统手动标定不仅耗时费力,结果还常常差强人意。Auto Lidar2Cam Calibration的出现&…...

B站缓存视频转换指南:3分钟让m4s文件变身可播放视频

B站缓存视频转换指南:3分钟让m4s文件变身可播放视频 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为B站缓存的视频文件无法…...

【RAGFlow】如何通过API查询知识库内容

import requests import jsondata \{"dataset_ids": ["617892ce3d2111f1835f373a6cab5d12"],"question": "快乐8游戏中,总共有多少个号码?","top_k": 3}# 发送http请求 header {"Content-Type…...

告别手动整理:WeChat Toolbox 让微信管理变得智能高效

告别手动整理:WeChat Toolbox 让微信管理变得智能高效 【免费下载链接】wechat-toolbox WeChat toolbox(微信工具箱) 项目地址: https://gitcode.com/gh_mirrors/we/wechat-toolbox 你是否曾经为了整理微信联系人而花费数小时&#xf…...

AI搜索优化(GEO/AEO)技术效果服务商排名对比列表

AI搜索优化(GEO/AEO)技术效果服务商排名对比列表 一、全栈技术头部 拓世网络 核心技术:TSPR-4 生成式引擎(TWLH四元结构),主打概率化递推算法与DIVJSON-LD双层结构化。 优势:逻辑自洽、可…...

手写一个自动断言Skill:30行代码,省你每天2小时

很多人已经开始感觉到,测试这件事正在悄悄变天。 不是危言耸听。上个月我和几个大厂的技术总监聊,大家普遍提到一个现象:AI写代码的速度已经超过人工Review的速度,但测试左移、持续交付、质量内建这些喊了多年的口号,反…...

用 Playwright + Claude Code 做自动化测试:一套从0到1跑通的实战流程

最近有同学问我一个问题: “现在越来越多公司的校招测开岗开始关注 AI 使用能力,我需要准备到什么程度?” 先说一个更现实的结论: AI 使用能力正在成为加分项,但还远没到“不会就没机会”的程度。 企业更看重的&#x…...

如何用WeChatMsg永久守护你的微信记忆:从数据备份到情感延续的完整指南

如何用WeChatMsg永久守护你的微信记忆:从数据备份到情感延续的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_T…...

如何优化SQL存储过程数据合并_使用MERGE语句高效更新

...

彻底禁用Windows Defender:终极性能优化与系统控制指南

彻底禁用Windows Defender:终极性能优化与系统控制指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/wi…...

代购系统分账系统设计:平台、代购、物流多方自动分账

代购行业订单链路长、参与方多、结算复杂,人工对账易出错、资金占用高、合规风险大。一套适配平台 代购 物流的自动分账系统,可实现资金合规托管、规则智能计算、订单触发分账、对账一键生成,彻底解决多方结算痛点。 一、核心设计目标 合…...

消息防撤回技术解密:如何让撤回的消息无处可藏?

消息防撤回技术解密:如何让撤回的消息无处可藏? 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitco…...

别慌!sklearn的UndefinedMetricWarning警告,其实是你模型在‘交白卷’

当模型开始"交白卷":解码sklearn的UndefinedMetricWarning 在机器学习项目的最后冲刺阶段,你满怀期待地运行了评估代码,却突然在控制台看到一行刺眼的警告:"UndefinedMetricWarning: Precision is ill-defined and…...

如何一键永久备份微信聊天记录?WeChatMsg免费工具全解析

如何一键永久备份微信聊天记录?WeChatMsg免费工具全解析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…...

避坑指南:rosbag合并时的时间戳问题处理(ROS Noetic版)

ROS Noetic下rosbag合并的时间戳陷阱与实战解决方案 在自动驾驶和机器人开发中,rosbag作为数据记录和回放的核心工具,其合并操作看似简单却暗藏玄机。特别是在多传感器数据融合场景下,时间戳处理不当会导致后续算法出现难以排查的时序错乱。本…...

从MATLAB到Vivado:Xilinx FIR滤波器IP核的端到端设计验证

1. 从MATLAB滤波器设计到COE文件生成 FIR滤波器的硬件实现通常始于算法设计阶段,而MATLAB的Filter Designer工具正是这个过程的理想起点。我最近在做一个音频信号处理项目时,就遇到了需要滤除10MHz高频噪声同时保留5kHz有用信号的需求。下面分享我的完整…...