[Bug Report] V23升级V25 踩坑bug解决(控制中心闪退)
Tofloor
poster avatar
zeyark
deepin
2026-10-06 18:20
Author

V23升级V25 踩坑bug解决(控制中心闪退)

一直用V23没升级,23源不维护了,没办法,手动从23升了25。

1.改25的源,/etc/apt/sources.list里注释掉23的,添加25的如下

deb https://community-packages.deepin.com/deepin/beige/ crimson main commercial community

2./etc/apt/sources.list.d/driver.list 改成25的

deb https://community-packages.deepin.com/driver-25/ snipe non-free

3./etc/apt/sources.list.d/appstore.list 改成25的

deb https://com-store-packages.uniontech.com/appstore-V25 crimson appstore

sudo apt update&&full-update

sudo apt dist-upgrade

reboot

坑来了:重进系统 无法使用控制中心,闪退

查来查去找不到原因,还好AI给力:

桌面点击控制中心
→ dbus/systemd 激活 /usr/bin/dde-control-center(wrapper 脚本)
→ 检测到 deepin-security-loader-exec 有 cap_setgid 能力
→ 走 deepin-security-loader 启动底层程序
→ loader 与子进程管道通信超时失败(get unique message form cmd timeout)
→ 进程退出 = 闪退 ✗

让 wrapper 走它自带的 fallback 路径(直接启动底层,绕过失败的 loader)。方法:移除 deepin-security-loader-exec 的 cap_setgid 能力,wrapper 检测不到后自动走 fallback:

sudo setcap -r /usr/bin/deepin-security-loader-exec

  • 控制中心将正常打开;原来"免弹窗授权"机制改为走 polkit 授权(个别系统设置操作可能需要确认授权),日常使用影响很小
  • 可随时恢复:sudo setcap cap_setgid=ep /usr/bin/deepin-security-loader-exec

然后 控制中心可以了,商店又打不开了,输入法也无法使用了,再查:

项目 说明
根因 与之前控制中心闪退同源:deepin-security-loader 因移除 cap_setgid 无法正常工作。应用商店 wrapper 脚本检测到 dbus 版本满足条件后无条件走 loader,loader 失败即退出 → 打不开
已修复 绕过 loader,直接启动底层程序 /usr/libexec/deepin/deepin-home-appstore-client
持久化 已在用户级创建 desktop 覆盖(~/.local/share/applications/deepin-app-store.desktop),以后从应用商店图标打开也会走底层程序,无需 sudo,删除该文件即可恢复原样

注意:由于桌面启动器有缓存,为了让新图标配置生效,建议你注销后重新登录一次。届时:

  • 应用商店从图标点击即可正常打开
  • fcitx5 输入法也会自动启动(上次加固的自启生效)

当前已打开的商店窗口可以正常使用(浏览、安装、更新应用都没问题)。

另外提醒:这个 loader 问题可能影响其他通过 loader 启动的 deepin 应用(如果还有类似的打不开,告诉我,我用同样的方式处理)。你现在先注销重登一次,然后测试应用商店 + 中文输入法,有问题随时反馈。

其他的应用还有这种问题没,帮我彻底检查下:

文件 性质 状态
deepin-home-appstore-client(应用商店 wrapper) 无 fallback,loader 失效即退出 ❌ 有问题 →已修复 ✅
dde-control-center(控制中心) 有 getcap 检查 + fallback ✅ 正常(实测成功启动)
dde-lock(锁屏) 有 getcap 检查 + fallback ✅ 正常
deepin-home-appstore-daemon(商店守护) 无实际 loader 依赖 ✅ 正常(运行中)
dde-printer-helper(打印机辅助) 纯二进制,库完整,仅打印授权场景调用 loader ⚠️ 低风险
deepin-security-loader(-exec)(loader 本体) 就是问题源头,已降权 — 保持现状

结论

除应用商店外没有其他需要修复的应用:

  • 控制中心、锁屏的 wrapper 都带 cap_setgid 检测 + 直连底层程序的 fallback,loader 失效时会自动跳过——这也是之前控制中心能修好的原因
  • 打印机助手 dde-printer-helper 是二进制程序(不是 wrapper),日常不受影响,只有打印授权环节可能涉及 loader;若你之后遇到打印功能异常,告诉我,我用同样思路处理
  • 应用商店的守护进程和 daemon 均正常

还有,老是提醒输入密钥环:

解决方式(二选一)

方式 A:记得密钥环密码 → 装图形工具 seahorse 修改密钥环密码(设为登录密码或清空),以后不再提示。

sudo apt install seahorse

装好后在"密码和密钥"中:右键"登录"密钥环 → 更改密码 → 输入旧密码 → 设为你的登录密码(或留空)。

方式 B:不记得密码 → 删除密钥环文件重建(简单彻底):

killall gnome-keyring-daemonrm ~/.local/share/keyrings/login.keyring ~/.local/share/keyrings/user.keystore

重新登录后系统自动创建空密钥环,不再提示。注意:会丢失已保存的 WiFi/应用密码。

Reply Favorite View the author
All Replies
avatar
𰻞𰻝面
deepin
2026-10-07 00:03
#1

不建议混源升级,各种暗病,说不定什么时候就出问题了

Reply View the author
avatar
LiuYongzhang
deepin
2026-10-07 09:20
#2
# 最好重新安装,不建议23升25.
 
# **如果要折腾重要的事情说三遍!!!备份重要数据!!!**
 
# 如果要折腾重要的事情说三遍!!!备份重要数据!!!
 
# 如果要折腾重要的事情说三遍!!!备份重要数据!!!
 
一:替换软件源文件
 
在终端完整复制下面命令替换软件源为25的
 
sudo bash -c '
set -e
 
cat > /etc/apt/sources.list <<'"'"'EOF'"'"'
 
## Generated by deepin-installer
 
deb https://community-packages.deepin.com/beige/ crimson main commercial community
#deb-src https://community-packages.deepin.com/beige/ crimson main commercial community
EOF
 
cat > /etc/apt/sources.list.d/driver.list <<'"'"'EOF'"'"'
 
# Written by dde-printer
 
deb https://community-packages.deepin.com/driver-25/ snipe non-free
EOF
 
cat > /etc/apt/sources.list.d/deepin-unstable-source.list <<'"'"'EOF'"'"'
 
## Generated by deepin-unstable-source.
 
deb https://proposed-packages.deepin.com/beige-testing/ unstable/crimson main commercial community
EOF
 
cat > /etc/apt/sources.list.d/appstore.list <<'"'"'EOF'"'"'
 
# Written by deepin-home-appstore-client
 
deb https://com-store-packages.uniontech.com/appstore-V25 crimson appstore
EOF
 
echo "已写入:"
ls -l /etc/apt/sources.list /etc/apt/sources.list.d/driver.list /etc/apt/sources.list.d/deepin-unstable-source.list /etc/apt/sources.list.d/appstore.list
'
 
二:更新系统
sudo apt update && sudo apt dist-upgrade -y  deepin-desktop-environment-core deepin-desktop-environment-extras deepin-desktop-environment-base deepin-desktop-environment-cli
Reply View the author
avatar
zeyark
deepin
2026-10-07 14:37
#3
LiuYongzhang:
# 最好重新安装,不建议23升25.
 
# **如果要折腾重要的事情说三遍!!!备份重要数据!!!**
 
# 如果要折腾重要的事情说三遍!!!备份重要数据!!!
 
# 如果要折腾重要的事情说三遍!!!备份重要数据!!!
 
一:替换软件源文件
 
在终端完整复制下面命令替换软件源为25的
 
sudo bash -c '
set -e
 
cat > /etc/apt/sources.list <<'"'"'EOF'"'"'
 
## Generated by deepin-installer
 
deb https://community-packages.deepin.com/beige/ crimson main commercial community
#deb-src https://community-packages.deepin.com/beige/ crimson main commercial community
EOF
 
cat > /etc/apt/sources.list.d/driver.list <<'"'"'EOF'"'"'
 
# Written by dde-printer
 
deb https://community-packages.deepin.com/driver-25/ snipe non-free
EOF
 
cat > /etc/apt/sources.list.d/deepin-unstable-source.list <<'"'"'EOF'"'"'
 
## Generated by deepin-unstable-source.
 
deb https://proposed-packages.deepin.com/beige-testing/ unstable/crimson main commercial community
EOF
 
cat > /etc/apt/sources.list.d/appstore.list <<'"'"'EOF'"'"'
 
# Written by deepin-home-appstore-client
 
deb https://com-store-packages.uniontech.com/appstore-V25 crimson appstore
EOF
 
echo "已写入:"
ls -l /etc/apt/sources.list /etc/apt/sources.list.d/driver.list /etc/apt/sources.list.d/deepin-unstable-source.list /etc/apt/sources.list.d/appstore.list
'
 
二:更新系统
sudo apt update && sudo apt dist-upgrade -y  deepin-desktop-environment-core deepin-desktop-environment-extras deepin-desktop-environment-base deepin-desktop-environment-cli

一、换25源:
#改25的源,/etc/apt/sources.list里注释掉23的,添加25的如下
deb https://community-packages.deepin.com/deepin/beige/ crimson main commercial community
#/etc/apt/sources.list.d/driver.list 原来的注释掉,添加25的,
deb https://community-packages.deepin.com/driver-25/ snipe non-free
#/etc/apt/sources.list.d/appstore.list 原来的注释掉,添加25的
deb https://com-store-packages.uniontech.com/appstore-V25 crimson appstore

sudo apt full-update && sudo apt dist-upgrade -y
reboot
二、##进系统如果出现提示秘钥环,解决办法(2选1就好,推荐方式B)
方式 A:记得密钥环密码 → 装图形工具 seahorse 修改密钥环密码(设为登录密码或清空),以后不再提示。sudo apt install seahorse
装好后在"密码和密钥"中:右键"登录"密钥环 → 更改密码 → 输入旧密码 → 设为你的登录密码(或留空)。
方式 B:不记得密码 → 删除密钥环文件重建(简单彻底):
killall gnome-keyring-daemonrm ~/.local/share/keyrings/login.keyring ~/.local/share/keyrings/user.keystore
重新登录后系统自动创建空密钥环,不再提示。注意:会丢失已保存的 WiFi/应用密码。
三、##如果控制中心闪退,就先移除 deepin-security-loader-exec 的 cap_setgid 能力:sudo setcap -r /usr/bin/deepin-security-loader-exec
然后sudo apt full-update && sudo apt dist-upgrade -y deepin-desktop-environment-core deepin-desktop-environment-extras deepin-desktop-environment-base deepin-desktop-environment-cli
reboot后
四、进入系统后会弹出一个输入秘码的弹窗,这是因为前面控制中心闪退,就先移除了 deepin-security-loader-exec 的 cap_setgid 能力:(这个命令)sudo setcap -r /usr/bin/deepin-security-loader-exec
执行恢复命令,将原来"免弹窗授权"机制改为走 polkit 授权:
sudo setcap cap_setgid=ep /usr/bin/deepin-security-loader-exec

23升级25完成,没有按病了。

Reply View the author