[deepin exploration] 将deepin-wine-stable移植到Debian/Ubuntu的详细教程
Tofloor
poster avatar
remyxo
deepin
2025-07-22 13:50
Author
由于各种原因,暂时无法使用deepin23/25作为生产主力,目前主力生产机是Debian 12Debian 13也已进入RC2,即将发布正式版,故决定将deepin-wine6-stabledeepin-wine8-stabledeepin-wine10-stable)移植到Debian/Ubuntu。移植过程中也出现了一些问题,并发帖求助(https://bbs.deepin.org.cn/post/289653),目前问题基本解决。在安装前建议安装gdebi组件,通过它安装deb文件可以自动下载安装所需的组件包。

 

一、下载应用,分析依赖包

登录deepin 23/25,下载一个wine应用,例如云视讯,我们从应用商店可以看到,该应用的包名为:cn.10086.ipower.uc.deepin

下载deb文件:

apt download cn.10086.ipower.uc.deepin

我们得到文件:cn.10086.ipower.uc.deepin_3.16.0deepin4_wine6-i386.deb

使用dpkg --info分析依赖关系(重点关注蓝色字体部分):

dpkg --info cn.10086.ipower.uc.deepin_3.16.0deepin4_wine6-i386.deb

``

Package: cn.10086.ipower.uc.deepin

 Depends: deepin-wine6-stable:amd64 (>= 6.0.0.51-1), deepin-wine-helper:amd64 (>= 5.2.4), deepin-elf-verify:amd64 (>= 1.1.10-1)

``

从输出可以看出,云视讯是基于deepin-wine6打包的,同时还依赖deepin-wine-helperdeepin-elf-verify

下载这三个deb文件

apt download deepin-wine6-stable deepin-wine-helper deepin-elf-verify

 得到三个deb文件(具体版本号会因为deepin官方升级组件而有所不同):

deepin-elf-verify_1.2.0.6-1_amd64.deb

deepin-wine6-stable_6.0.0.68_amd64.deb

deepin-wine-helper_5.4.7-1_amd64.deb

 

用dpkg --info分别查看三个文件的依赖:(关注蓝色部分)

Package: deepin-elf-verify

 Depends: libc6 (>= 2.14), libelf1 (>= 0.131), libglib2.0-0 (>= 2.31.8), libssl1.1 (>= 1.1.1), libsystemd0 (>= 221), ca-certificates

 

Package: deepin-wine6-stable

 Depends: deepin-wine-runtime (>= 0.1.8),  libasound2 (>= 1.0.16),  libatk1.0-0 (>= 1.12.4),  libc6 (>= 2.27),  libcairo-gobject2 (>= 1.10.0),  libcairo2 (>= 1.2.4),  libgcc1 (>= 1:3.0),  libgdk-pixbuf2.0-0 (>= 2.22.0),  libglib2.0-0 (>= 2.16.0),  libgphoto2-6 (>= 2.5.10),  libgphoto2-port12 (>= 2.5.10),  libgstreamer-plugins-base1.0-0 (>= 1.0.0),  libgstreamer1.0-0 (>= 1.4.0),  libgtk-3-0 (>= 3.0.0),  liblcms2-2 (>= 2.2+git20110628),  libmpg123-0 (>= 1.6.2),  libopenal1 (>= 1.14),  libpango-1.0-0 (>= 1.14.0),  libpangocairo-1.0-0 (>= 1.14.0),  libpcap0.8 (>= 0.9.8),  libpulse0 (>= 0.99.1),  libudev1 (>= 183),  libusb-1.0-0 (>= 2:1.0.21),  libvkd3d1 (>= 1.0),  libx11-6,  libxext6,  libxml2 (>= 2.9.0),  ocl-icd-libopencl1 | libopencl1,  libasound2-plugins,  libncurses6 | libncurses5 | libncurses, deepin-elf-verify (>= 1.1.10-1)

 

Package: deepin-wine-helper

 Depends: p7zip-full, libc6 (>= 2.4), libdtkcore5 (>= 5.2.0), libdtkgui5 (>= 5.2.0), libdtkwidget5, libgcc1 (>= 1:3.0), libgl1, libqt5core5a (>= 5.11.0~rc1), libqt5gui5 (>= 5.7.0), libqt5widgets5 (>= 5.0.2), libstdc++6 (>= 4.1.1), libx11-6, fonts-noto-cjk, python3-dbus, x11-utils, deepin-elf-verify (>= 1.1.10-1)

 

Package: deepin-wine-runtime

 Depends: deepin-elf-verify (>= 1.1.10-1)

 

deepin-elf-verify依赖的libssl1.1在高版本的Linux发行版(Debian12/13Ubuntu 22.04等)中已经被删除,取而代之的是高版本的libssl3,如果apt search libssl1.1搜索不到相关的组件,那么您需要手动下载安装,可直接从deepin仓库下载,也可以网络搜索,从ubuntu网站下载相关文件(本文使用ubuntu网站的deb文件)。

另外,还需要wqy字体文件fonts-wqy-microhei,否则,wine应用部分汉字显示为框框。

apt download libssl1.1 deepin-wine-runtime fonts-wqy-microhei

这样,我们一共得到如下文件:

deepin-elf-verify_1.2.0.6-1_amd64.deb

deepin-wine-helper_5.4.7-1_amd64.deb

deepin-wine-runtime_0.1.11_amd64.deb

deepin-wine6-stable_6.0.0.68_amd64.deb

fonts-wqy-microhei_0.2.0-beta-3.1_all.deb

libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb

 

如果想要安装deepin-wine8-stabledeepin-wine10-stable,还需要下载相关的deb文件并进行分析依赖关系:

Package: deepin-wine10-stable

 Depends: libasound2 (>= 1.0.16), libc6 (>= 2.26), libcapi20-3, libdbus-1-3 (>= 1.9.16), libgcc1 (>= 1:3.0), libglib2.0-0 (>= 2.37.3), libgphoto2-6 (>= 2.5.10), libgphoto2-port12 (>= 2.5.10), libgstreamer-plugins-base1.0-0 (>= 1.8.0), libgstreamer1.0-0 (>= 1.4.0), libpcsclite1 (>= 1.3.3), libpng16-16 (>= 1.6.2-1), libpulse0 (>= 0.99.1), libsane (>= 1.0.24), libudev1 (>= 183), libusb-1.0-0 (>= 2:1.0.21), libx11-6, libxext6, ocl-icd-libopencl1 | libopencl1, ocl-icd-libopencl1 (>= 1.0) | libopencl-1.2-1, libasound2-plugins, libncurses6 | libncurses5 | libncurses, deepin-elf-verify (>= 1.1.10-1)

其中,libsaneDebian 13已经改为libsane-1,如果需要安装在Debian 13上,需要修改依赖文件。具体修改方法:

sudo dpkg-deb -R deepin-wine10-stable_10.7deepin5_amd64.deb tmp_files

得到如下的目录结构:

进入tmp_files/DEBIAN目录,编辑control文件,将其中的libsane (>= 1.0.24) 改为:

libsane (>= 1.0.24) | libsane-1 (>= 1.3)

保存。(也可以将deepin-elf-verify这个依赖也去掉,在deepin上是一个哑包,没有实际用途,在UOS上才有用),重新打包:

sudo dpkg-deb -b tmp_files deepin-wine10-stable_10.7deepin5_amd64.deb

 

二、开始部署

sudo dpkg --add-architecture i386     # 启用i386架构(部分wine应用是i386架构)

# 安装公共组件
sudo gdebi libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb   # deepin-elf-verify依赖
sudo gdebi deepin-elf-verify_1.2.0.6-1_amd64.deb     # 依赖包(哑包,无实际功能)
sudo gdebi fonts-wqy-microhei_0.2.0-beta-3.1_all.deb # 字体,否则汉字显示框框
sudo gdebi deepin-wine-helper_5.4.7-1_amd64.deb    # 依赖包

# 安装deepin-wine6-stable
sudo gdebi deepin-wine-runtime_0.1.11_amd64.deb   # deepin-wine6运行时依赖包
sudo gdebi deepin-wine6-stable_6.0.0.68_amd64.deb # deepin-wine6-stable

# 安装deepin-wine10-stable
sudo gdebi deepin-wine10-stable_10.7deepin5_amd64.deb # deepin-wine10-stable

 

至此,deepin-wine6-stable部署成功(我是把deepin-wine6-stabledeepin-wine8-stabledeepin-wine10-stable都部署了,因为我们不知道某个wine应用是用哪个版本的deepin wine打包的)。

 

三、安装应用

以云视讯为例:

sudo gdebi cn.10086.ipower.uc.deepin_3.16.0deepin4_i386.deb

 

因为deepin/UOS有自己标准的deb打包标准,他会把desktop文件和icon文件放入/opt/apps/package_name/entries/applicationsicons下,DDE会扫描这些目录,并把菜单加入启动项,标准的DebianUbuntu没有这个机制,需要把文件同步拷贝到/usr/share/applications/usr/share/icons下,才能正确显示菜单项。

 

解决办法

方法一:把/opt/apps/package_name/entries/applications下的desktop文件拷贝到/usr/share/applications下,把/opt/apps/package_name/entries/icons下的目录(hicolor起到具体的png/svg文件)一起拷贝到/usr/share/icons目录下(保持目录结构不变),或者拷贝到当前用户的~/.local/share/applications~/.local/share/icons下,即可在启动器看到菜单项。

优点:简单。

缺点:每次都要拷贝文件,卸载后/usr/share/applicationsicons下有残留文件。

 

方法二:参考前面修改依赖关系的方法,解包后在tmp_files目录下创建:

usr/share/applicationsusr/share/icons目录,将上述desktop文件和图标文件拷贝到这两个目录下,保持目录层次结构不变。调整过后的目录结构如下:

 应用安装到/opt/apps/package_name目录下,desktop文件和图标文件安装到/usr/share对应的目录下。

重新打包安装。

优点:一次搞定,卸载无残留。

缺点:每次wine应用更新,需要重新打包,需要一定技能。

 

四、运行应用及问题解决

点击应用菜单项,启动应用。在Debian 12上正常解压并执行!不幸的是,在Debian 13Ubuntu 24.04上,解压缩失败,运行失败!

经分析,deepin 23/25UOS v20Debian 12自带的7z版本较低(16.02),而Debian 13Ubuntu 24.04自带的7z应用版本较高(>=23),增强了安全检测,不允许链接中出现相对路径导致。

进一步分析,Ubuntu 24.04带的p7zip组件包没有具体可执行文件,只有文档,感觉p7zip已逐渐被废弃,改用7zip组件包了。/usr/bin/7z脚本引用的是/usr/lib/7zip/7z,而UOSdeepinDebian 12引用的是/usr/lib/p7zip/7z

 

解决方案

方案一

deepinUOSDebian 12仓库下载p7zipp7zip-full版本为16.02的组件包,拷贝到Ubuntu 24.04Debian 13,进行安装:

sudo gdebi p7zip_16.02+dfsg-8_amd64.deb
sudo gdebi p7zip-full_16.02+dfsg-8_amd64.deb   # 依赖p7zip

注:此方案不推荐,可能apt update & apt upgrade会升级,导致老旧的p7zip被删除,/usr/bin/7z引用改回为/usr/lib/7zip/7z

方案二【推荐】

deepinUOS或者Debian 12中拷贝/usr/lib/p7zip目录到Ubuntu 24.04Debian 13

修改/usr/bin下面的7z7za7zr三个脚本,将/usr/bin/7zip/7z改为/usr/bin/p7zip/7z7za7zr类似。

碰到的问题

运行7z x files.7z时,报错:

Can't load '/usr/lib/p7zip/7z.dll' (/usr/lib/p7zip/7z.so: 无法打开共享目标文件: 权限不够)

原因

从deepin打包过来时权限变了,修改为跟源系统一致的权限。

修复

cd /usr/lib/p7zip

sudo chmod 755 7z*

sudo chmod 644 7z.so     # 重要!

 

五、总结

目前整体稳定,当然毕竟官方不是基于Debian/Ubuntu开发,多少有一些小问题,如云视讯偶尔会崩溃,自己打包的一个应用窗口显示不全,需要双击标题条最大化,然后才能正常显示窗口等,但总体能满足需求了,希望deepin-wine的兼容性越来越好!

Reply Favorite View the author
All Replies
新手小白
deepin
2025-07-22 14:22
#1
It has been deleted!
remyxo
deepin
2025-07-22 14:34
#2
新手小白 It has been deleted!

原版的要自己配置啊,如果用deepin-wine-stable,可以直接把deepin商店里的wine应用下载安装,也可以用深度应用兼容工具自己打包,方便啊!

Reply View the author
gfdgd_xi
deepin
Ecological co-builder
2025-07-22 15:49
#3

其实星火应用商店里有已经移植好的dwine6,8和10

Reply View the author
watchlater
deepin
2025-07-22 16:39
#4

给Debian/Ubuntu加上deepin的源,再安装deepin-wine,会不会更方便些呢

Reply View the author
remyxo
deepin
2025-07-22 17:09
#5
watchlater

给Debian/Ubuntu加上deepin的源,再安装deepin-wine,会不会更方便些呢

加上deepin的源,可能导致系统其他核心组件更新了deepin的组件,导致系统挂掉。

当然这样做的问题是无法接收deepin官方的更新。如果deepin-wine是独立的源就好了。

Reply View the author
remyxo
deepin
2025-07-22 17:13
#6
It has been deleted!
remyxo
deepin
2025-07-22 17:35
#7
watchlater

给Debian/Ubuntu加上deepin的源,再安装deepin-wine,会不会更方便些呢

这也是一个方案,各有优缺点。装spark版本,只能下载spark应用商店的wine程序,因为脚本调用的是/opt/spark-wine10-stable以及/opt/sparkwine/tools下的脚本,deepin商店下载的是访问/opt/deepin-wine10-stable。

Reply View the author
‌量子巡游者
deepin
Resources Team Moderator
2025-07-22 18:16
#8

由于各种原因,暂时无法使用deepin23/25作为生产主力???

麻烦说下出于哪些问题?这样官方也好进一步改进,也能知道自己的不足在哪?

Reply View the author
remyxo
deepin
2025-07-23 08:17
#9
‌量子巡游者

由于各种原因,暂时无法使用deepin23/25作为生产主力???

麻烦说下出于哪些问题?这样官方也好进一步改进,也能知道自己的不足在哪?

wayland,全面落后于主流发行版,甚至落后隔壁一大截。第二显示器无法调整分辨率。

磐石,导致EasyConnect无法启动,这是办公必备的工具,天天用。

在桌面下部右键,菜单经常被任务栏遮挡,或者部分超出屏幕之外,无法选择。

Reply View the author
锵锵枪ᯤ
deepin
2025-07-23 09:51
#10

https://deepin-wine.i-m.dev/

这里直接安装就行了

Reply View the author
deepin-流云
Moderator
Community OP
2025-07-23 09:54
#11
remyxo

wayland,全面落后于主流发行版,甚至落后隔壁一大截。第二显示器无法调整分辨率。

磐石,导致EasyConnect无法启动,这是办公必备的工具,天天用。

在桌面下部右键,菜单经常被任务栏遮挡,或者部分超出屏幕之外,无法选择。

Treeland目前还是处于实验特性,计划是Q4可以作为默认桌面环境使用;

磐石可以通过命令关闭:sudo deepin-immutable-writable enable -d /usr

右键菜单被遮挡的问题,在beta和正式版之后已经完全修复,这个bug是在alpha上出现的,请问是没有升级到最新版本嘛?

Reply View the author
gfdgd_xi
deepin
Ecological co-builder
2025-07-23 09:56
#12
remyxo

这也是一个方案,各有优缺点。装spark版本,只能下载spark应用商店的wine程序,因为脚本调用的是/opt/spark-wine10-stable以及/opt/sparkwine/tools下的脚本,deepin商店下载的是访问/opt/deepin-wine10-stable。

spark版的有做处理,可以正确运行使用 deepin-wine-helper 的程序,而且也会处理 .desktop 的问题

而且我记得星火没有 spark-wine10-stable,只有 spark-wine10 和 deepin-wine10-stable

Reply View the author
加菲不是胖橘
deepin product team
2025-07-24 09:15
#13
新手小白 It has been deleted!

wine10的中文体验没有deepin-wine10-stable好,deepin-wine团队掌握了wine的字体解析和渲染,解决了各种程序的中文乱码问题和显示不完整问题,中文支持和显示优于其它wine版本。

另外,deepin-wine的内存占用开销也更优秀哈,可以对比。😂

Reply View the author
CTZ老斑鸠
deepin
2025-07-24 13:09
#14
watchlater

给Debian/Ubuntu加上deepin的源,再安装deepin-wine,会不会更方便些呢

二奶机上混源玩一下还行,工作环境升级一下可能系统就崩了

Reply View the author