恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
把deepin跑进WSL 2:DDE桌面安装与踩坑全指南
首页
资讯中心
/
把deepin跑进WSL 2:DDE桌面安装与踩坑全指南
把deepin跑进WSL 2:DDE桌面安装与踩坑全指南
发布时间:2026/9/29 8:14:03
把deepin跑进WSL里听上去有点像“给我的Windows装个Linux桌面”的绕远路操作但WSL 2配合WSLg发展到现在这已经不是个噱头而是一套能正经干活、能体验完整DDE桌面的方案。无论你是想在不折腾双系统和虚拟机的前提下尝尝deepin的桌面粉还是想在Windows上用deepin的软件源跑容器、做跨发行版测试这条路线都值得花一个下午折腾一次。这篇文章默认你有Windows 10 2004以上或Windows 11基础命令会用但不需要你提前装好任何Linux环境我会把WSL安装、deepin桌面跑起来、以及后续日常使用里会踩的坑完整过一遍。1. 准备工作把WSL 2环境先弄利索1.1 检查Windows版本与开启必要功能WSL本身是Windows的可选组件装之前先看两件事系统版本、虚拟化开关。Windows 10从2004版本开始就原生支持WSL 2Windows 11当然更没问题。如果你要用WSLg直接跑图形界面我建议至少是Windows 10 21H2以上或者干脆用Windows 11因为WSLg在Win11上的集成度更好。Windows 10老版本虽然也能装WSL 2但图形回传、声卡回传这些功能会比较难受体验差异很大。确认版本后用管理员身份打开PowerShell执行下面两条命令分别启用“适用于Linux的Windows子系统”和“虚拟机平台”dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart然后重启电脑。这一步不能跳过因为“虚拟机平台”没启用的话WSL 2根本跑不起来后面所有操作都白搭。另外提醒一句BIOS里Intel VT-x或AMD-V虚拟化技术必须处于开启状态。有些品牌机出厂默认关掉了你在PowerShell里执行systeminfo拉到“Hyper-V要求”那一行如果显示“虚拟化已在固件中启用”就说明没问题如果显示“否”或者“未启用”就去BIOS里把虚拟化功能打开。1.2 安装并更新WSL到最新版本现在安装WSL已经弱智到一条命令wsl --install。这条命令会自动帮你启用所需功能、下载WSL内核并默认安装Ubuntu发行版。不过我们这篇文章后续还要跑deepin桌面我建议你显式指定发行版并且把WSL更新到最新版因为旧版本WSL在图形和兼容性上有很多坑。在管理员PowerShell里跑wsl --install -d ubuntu-22.04 wsl --update wsl --set-default-version 2wsl --update很重要。你在网上搜deepin进不去桌面、WSL Docker起不来、或者运行wsl --list --online连不上服务器十有八九是WSL版本太老。微软现在把WSL做成了独立应用功能更新非常频繁Windows设置里的“可选功能”面板也能看到WSL的更新入口。我把这段单独拿出来说是因为很多教程只教你怎么装不教你更新等你遇到“your version of windows subsystem for linux (wsl) is too old”这种报错时再回头查就浪费时间了。设置默认版本为2是因为WSL 2用的是真正的轻量级虚拟机拥有完整Linux内核。DDE桌面、Docker、systemd这些核心依赖在WSL 1的“翻译层”模式下全都跑不痛快所以一定要用WSL 2。1.3 安装过程中最常见的几个WSL报错这里把新手最常撞的几个报错先列出来后面第5章还会展开报错场景原因快速处理wsl --install下载非常慢微软CDN网络波动等待重试或手动下载发行版应用包后安装wsl --install提示403系统旧或WSL旧版本不支持wsl --update升级后再试wsl --list --online连接超时网络受限或WSL应用过旧直接手动访问官方网页下载rootfs/应用包wsl提示版本too oldWSL内核组件过旧管理员PowerShell执行wsl --update安装后启动发行版就报错BIOS虚拟化未开启进BIOS开启VT-x/AMD-V这里我不会让你去折腾什么旁门左道的加速手段就一条原则WSL是微软官方组件优先走官方渠道更新、重试、手动下载基本都能解决。2. 方案选型两条路线分别适合什么人2.1 路线一直接导入deepin的WSL镜像deepin官方虽然没有像Ubuntu那样在微软商店里长期维护WSL版本但deepin是Debian系发行版只要拿到一份deepin的rootfs根文件系统就可以借助wsl --import命令把它作为一个独立发行版导入到WSL中。rootfs的来源有几个社区维护的deepin WSL打包文件自己从官方deepin Docker镜像导出从本地deepin安装介质或已有系统中打包。第二种方式比较可控步骤也清晰——先在任意Linux环境比如Docker Desktop或另一台Linux机器里拉取deepin官方镜像然后导出成tar包docker pull deepin:latest docker run -d --name deepin-exp deepin docker export deepin-exp -o deepin-rootfs.tar拿到tar包后回到Windows的PowerShell导入为WSL发行版wsl --import Deepin C:\WSL\Deepin D:\downloads\deepin-rootfs.tar --version 2这里C:\WSL\Deepin是发行版在Windows上的存放目录D:\downloads\deepin-rootfs.tar是刚才导出的rootfs路径。导入完成后验证一下wsl -d Deepin -- uname -a wsl -d Deepin -- cat /etc/os-release如果能看到deepin的版本信息说明导入成功。这条路线的核心优势是“纯净”。你进入的就是一个实实在在的deepin系统软件源是deepin自己的默认桌面组件、应用商店、DDE全家桶都齐活。缺点是这个rootfs需要你自己找、自己导流程稍长而且社区包有时没跟上deepin新版本会有包依赖错乱的风险。2.2 路线二在WSL的Ubuntu里安装Deepin桌面环境另一条路线是把DDEDeepin Desktop Environment深度桌面环境当作软件包直接装到WSL的Ubuntu里。听起来有点“套娃”但DDE本来就是Debian系的桌面环境Ubuntu仓库里甚至直接收录了相关包。这条路线很适合新手和只想体验桌面的朋友因为Ubuntu对WSL的支持最好出了问题直接删除重建几分钟就能重来。而且你不需要折腾rootfs系统就是现成的Ubuntu 22.04。安装命令也很直接sudo apt update sudo apt upgrade -y sudo apt install -y dde dde-file-manager dde-dock装完后启动桌面sudo service dbus start startdde如果一切顺利在Windows 11的WSLg支持下你屏幕上会弹出deepin桌面窗口能正常点图标、开终端、打开文件管理器。这条路的缺点是DDE毕竟是装在外来系统上的和deepin官方发行版的整合度有差距。比如某些系统级设置、桌面登录管理器、甚至输入法框架都需要额外配置做不到“开箱即用”。2.3 两条路线的对比与选择建议对比项路线一导入deepin rootfs路线二Ubuntu DDEdeepin系统纯净度高接近原生低是Ubuntu底子安装难度中需找/导出rootfs低几条命令图形桌面体验好组件齐全一般需手动调出问题后恢复删掉重新导入重建Ubuntu或卸载包适合人群想深度体验deepin的人只想知道DDE桌面啥样的尝鲜者deepin软件源原生可用不能直接混用我的建议如果你只是想快速看看deepin长什么样或者你是在开发deepin相关的软件需要干净环境——走路线一。如果你只是想试试DDE桌面顺手不顺手或者打算在WSL里联合做开发走路线二更稳。后面几章的实操我会以路线二为主线展开因为80%的坑都集中在这条路上另一条路的通用配置在第4章也会覆盖到。3. 实操复盘把DDE桌面在WSL 2里跑通全过程3.1 我的运行环境与前置配置先交代我实测时的环境方便你对照宿主机是Windows 11 22H2WSL 2已更新到最新版发行版是Ubuntu 22.04.3 LTS。在动DDE之前有两件前置配置必须做否则大概率会卡在“显示deepin之后进不去桌面”。第一件是启用systemd。老版本WSL默认用init系统替代systemd但DDE的桌面服务、Docker守护进程都依赖systemd不启用的话桌面起一半就崩。在Ubuntu里编辑/etc/wsl.conf[boot] systemdtrue保存后回到Windows PowerShell执行wsl --shutdown再重新进入WSL然后验证systemctl is-system-running看到running或degraded都算正常如果提示offline或者failed说明systemd没起成检查wsl.conf格式和WSL版本。第二件是确认WSLg是否可用。WSLg是WSL 2自带的图形回传组件它让Linux图形程序直接以Windows窗口形式显示。检查方式很简单echo $DISPLAY如果输出:0之类的值说明WSLg环境正常。如果没有输出或提示为空你可以尝试用xrdp方案做桌面回传我在3.3节会专门说。3.2 安装DDE并解决依赖问题前置环境没问题后开始装DDE。先更新系统再安装避免依赖包版本冲突sudo apt update sudo apt upgrade -y sudo apt install -y dde dde-file-manager dde-dock dde-launcher这里我额外加了dde-file-manager和dde-dock因为只装dde这个元包有时候依赖解析不全桌面底栏Dock和文件管理器要单独补上体验才完整。安装过程会拉一大批Qt和DTK库时间比较长属于正常现象。如果你网络状况不佳导致下载很慢建议先把Ubuntu的apt源换到国内镜像这个在4.1节展开讲。装完后不要急着点启动先处理两个隐藏的依赖。第一个是dbus-x11DDE很多组件靠dbus通信少了它桌面会报“Failed to connect to bus”sudo apt install -y dbus-x11第二个是字体。deepin桌面对中文字体渲染要求高Ubuntu裸机没有中文字体桌面全是方块字会很难受。装一套字体保底sudo apt install -y fonts-noto-cjk依赖都备齐后启动桌面sudo service dbus start startdde如果你是Windows 11且WSLg正常几秒后应该能看到桌面环境弹出。如果没有任何反应或日志一闪而过往下看3.3节的排查路径。3.3 桌面启动失败的排查路径我实测时第一次跑startdde确实撞上了“显示Deepin之后进不去桌面”的现象——窗口停在deepin壁纸和加载动画上然后整个窗口消失回到命令行提示符。这个问题非常典型根因基本在两方面。第一dbus启动不完整。进桌面后等几秒执行ps aux | grep dbus如果dbus进程不在或提示服务未初始化手动重启sudo service dbus status sudo service dbus stop sudo service dbus start第二桌面进程崩溃退出。看日志最快cat ~/.xsession-errors tail -100 ~/.xsession-errors日志里如果出现dde-session或dde-desktop相关的段错误、缺少lib、找不到display等字眼分别处理。缺lib就sudo apt install --fix-broken找不到display就检查WSLg。另一招是杀掉所有DDE残留进程再重来pkill -f dde pkill -f dde-session startdde这三件套我基本上百试不爽。在WSL里跑桌面环境就是这样服务健康状态比内核版本还关键。如果你的Windows 10老版本跑不了WSLg或者WSLg显示异常备选方案是用xrdp。先装xrdpsudo apt install -y xrdp sudo systemctl enable xrdp sudo systemctl start xrdp然后在Windows上打开“远程桌面连接”地址填localhost:3389用户名密码填WSL里的账户。xrdp的原理是把桌面输出转成RDP协议Windows自带客户端就能接兼容性很老很稳。不过xrdp默认会启动一个独立的X会话你在里面看到的更像是一个完整的远程Linux桌面而不是“原生窗口浮在Windows桌面上”的WSLg感受。4. 进入deepin之后日常配置与开发用法4.1 软件源切换分别说清Ubuntu与deepin两种情况软件源是deepin场景下绕不开的坎。路线二下系统是Ubuntu但桌面是deepin组件的混血体所以源只能用Ubuntu源去满足系统更新不能拿deepin的源去妄图合并。Ubuntu系统换源22.04版本的操作是编辑/etc/apt/sources.list或/etc/apt/sources.list.d/ubuntu.sources把源地址替换成国内镜像。以清华源为例安装镜像源后sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo apt update如果你走的是路线一直接导入deepin rootfs系统本身是deepin就需要换deepin源。deepin源文件通常在/etc/apt/sources.list内容指向packages.deepin.com或类似地址。切换时把域名替换成你所在网络访问更快的镜像地址即可。这里必须强调deepin源和Ubuntu源绝不能混用混用后轻则依赖冲突重则整个系统损坏。判断自己系统是deepin还是Ubuntu看/etc/os-release里的ID字段比什么方法都准。4.2 在WSL的deepin环境里跑Dockerdeepin场景下启动Docker核心还是systemd。如果你已按3.1节启用了systemd安装Docker之后直接sudo apt install -y docker.io sudo systemctl enable docker sudo systemctl start docker把当前用户加入docker组省得每次sudosudo usermod -aG docker $USER新会话生效后执行docker run hello-world验证。但如果你的WSL没有成功启用systemdDocker会给你报“Cannot connect to the Docker daemon”这时候需要手动拉守护进程sudo service docker start或者直接前台运行sudo dockerddockerd跑起来后别关终端再开一个窗口执行docker命令。这种方法在无systemd的WSL里比较常用但每次重启WSL都要手动开一下比较麻烦。我还是推荐老老实实开systemd。Docker数据目录默认在Linux文件系统里跑起deepin容器的同时Windows侧也能直接访问\\wsl$\Ubuntu\var\lib\docker备份转移都很方便。4.3 与Windows互操作跨系统文件访问与VSCode开发WSL最爽的一点是Windows和Linux文件系统互通。在Windows资源管理器地址栏输入\\wsl$\就能看到所有发行版的目录deepin发行版或Ubuntu的文件都在里面。反向地WSL里访问Windows磁盘cd /mnt/c/Users/你的用户名/Desktop在deepin桌面环境里写代码、做开发直接用VSCode配合WSL扩展体验最好。在WSL终端进入项目目录后执行code .VSCode会以远程模式打开WSL里的项目代码提示、终端、调试器全部走Linux侧完全不会受Windows路径和换行符问题影响。顺带回应一个网上常被问的问题WSL里写代码用什么字体最接近macOS的体验。我个人的组合是JetBrains Mono配合Cascadia Code前者做等宽字体后者用在VSCode界面就是接近macOS的清爽感。如果偏爱SF Mono风格可以试试开源的“Meslo LG”字体加上字体平滑配置观感很接近。DDE桌面里的终端也可以单独设置字体路径在“设置—个性化”菜单。PyCharm也支持直接调用WSL里的conda环境方法是选择解释器时选“WSL”然后指定Linux侧的conda可执行文件路径。使用conda环境时注意WSL里和Windows里不能共享同一个环境要把环境装在Linux侧才稳定。4.4 顺带说清“deepin下的ico在哪个目录”热搜词里混进来一个挺有意思的问题“deepin下的ico在哪个目录”。先说结论deepin是Linux发行版Linux桌面里图标文件主流格式是PNG和SVGWindows的.ico文件在deepin里很少用到。deepin的系统图标主要分布在几个目录/usr/share/icons/系统全局图标主题DDE默认的图标主题基本都在这/usr/share/pixmaps/散装的独立图标装软件时图标会丢这里/usr/share/icons/hicolor/xxx/apps/按分辨率组织的应用图标/usr/share/applications/.desktop文件里声明图标路径。如果你是想给deepin桌面的应用换图标往/usr/share/icons里丢对应尺寸的PNG然后在.desktop文件里改Icon行就行。如果非要用.ico可以装icoutils工具转换成PNG再放进去。5. 常见问题与排查技巧实录5.1 桌面卡在“Deepin”Logo进不去这个问题我专门写一个小节因为问的人真的多。现象是启动桌面后只看到deepin壁纸或Logo鼠标指针能转但进不了桌面。排查顺序查看~/.xsession-errors找最后几行有没有segfault、crash、failed to connect字样sudo service dbus status确认dbus活着确认没有残留桌面进程执行pkill -f dde再重启startdde检查磁盘空间df -h。WSL分配磁盘空间不够桌面写入临时文件失败也会卡在启动阶段最后狠招删除用户配置缓存rm -rf ~/.config/dde* rm -rf ~/.cache/deepin* startdde缓存损坏的概率不算低删掉后重启桌面大部分能救回来。5.2 WSL安装与网络相关问题的汇总按照网上出现频率我把WSL本身的坑再列一遍这次带上我实测过的解法问题现象实测有效的解法wsl --install下载太慢卡在“正在安装Ubuntu”界面数小时中断后重新执行避开晚高峰或直接手动下载发行版安装包wsl --install提示403提示“已禁止(403)”管理员PowerShell执行wsl --update或手动下载最新msi安装包覆盖升级wsl --list --online超时列不出可用发行版更新WSL应用后重试手动访问官方发行版列表页面获取链接“WSL版本太旧”运行命令直接报错执行wsl --update确保WSL内核和用户态应用都是最新版安装后启动黑屏窗口闪一下就没了检查虚拟化是否开启执行wsl --status看版本是否正常补充一个经验WSL现在升级非常频繁很多网上答案半年前还能用半年后API都变了。遇到WSL本体的问题先升级再查网络最后才考虑系统设置这个顺序能帮你省大量时间。5.3 Docker、软件源的疑难问题deepin或Ubuntu环境里apt update报“GPG error”: 加--allow-unauthenticated是治标不治本正确做法是重新导入对应发行版的公钥。Ubuntu源报错多半是旧源里有失效keysudo apt clean sudo apt update可以解决一部分。Docker拉镜像慢这个不是WSL专属关键做法是给Docker配置镜像加速器在/etc/docker/daemon.json里写入镜像加速地址然后重启daemon。Docker启动后容器日志看不到查看journalctl -u docker --no-pager | tail -100WSL环境下有时需要先确认systemd真的在运行。5.4 体验优化WSL内存、CPU和显示配置deepin桌面比普通命令行重得多默认WSL配置会限制内存桌面容易出现卡顿。解决方案是给WSL单独写内存限制文件。在Windows用户目录下创建.wslconfig[wsl2] memory8GB processors4 swap2GB配置完执行wsl --shutdown再启动新的内存分配才会生效。实测8GB内存下DDE桌面比较跟手4GB也能跑但切换应用会有些迟滞。如果你跑的是深度学习的CUDA开发WSL 2也支持GPU直通和CUDA直接安装WSL版CUDA Toolkit即可但那是另一个话题此处不展开。开屏动画、毛玻璃特效、透明效果这些DDE桌面特效在虚拟机环境里尽量全部关掉对帧率提升立竿见影路径在“设置—个性化—效果设置”。5.5 最后的“急救包”操作如果你折腾半天桌面彻底起不来或者系统被你试坏了别急着重装整个发行版。WSL的好处是发行版之间互相隔离重装成本极低。如果只是Ubuntu系统混乱直接删掉重建wsl --unregister Ubuntu重新wsl --install -d ubuntu-22.04。整个重装过程也就几分钟比在物理机上折腾重装快得多。debian系es在WSL里跑deepin的经验说到底就是一句话先把基础环境WSL 2 systemd WSLg/xrdp打扎实桌面组件只是最后一层皮。很多朋友跑不起来不是在桌面组件上翻车而是在WSL底层配置没过关。我个人实际使用后对这套方案的评价是适合尝鲜和开发辅助不适合当主力桌面。毕竟WSL的图形栈是回传渲染跟真机直出还是有一定差距长时间高负荷使用DDE桌面的流畅度也不如原生安装。但反过来你写deepin应用、调试跨平台界面、测试DDE组件兼容性时能在Windows里秒开一个deepin桌面这个效率红利是真金白银。如果你只是体验一下我建议直接用路线二省心。如果你认真想用deepin做桌面那我更推荐你把rootfs导入WSL或者直接考虑物理机安装/虚拟机。WSL这条路的正确打开方式是把它当成一个随时可摧毁、可重建的“deepin实验室”而不是一个安安稳稳的生产环境。最后分享一个小技巧无论你改了什么配置只要涉及WSL底层wsl.conf、.wslconfig、systemd开关一定要wsl --shutdown再重进很多人改完配置发现没生效原因就是WSL没真正重启。这个小习惯能帮你少走一半弯路。