[Share Experiences] UOSv20 1070今日升级后 星火和玲珑商店社区版等无法使用AI解决办法
Tofloor
poster avatar
comicfans
deepin
2026-09-23 12:50
Author

UOS20 1070今日更新后一些软件不能用了 暂时发现三个 用AI解决了 AI报告供参考

问题一:fish的starship美化失效

症状

终端能正常使用,但提示符变回默认样式;直接敲 starship 报 command not found。

根因链

  1. PATH 被"重写式"覆盖 —— ~/.bashrc 里原本是 export PATH="/usr/local/bin:$PATH",后来被改成 export PATH="/usr/bin/:$PATH"。新写法没有把 /usr/local/bin 加回去,而是把它挤掉了。
  2. 兜底来源对 bash 不可见 —— 补 /usr/local/bin 的地方是 /etc/profile,但只有登录 shell 才读它。交互式非登录 shell(终端默认行为、IDE 终端、脚本)不读 → PATH 里永久缺这一项。
  3. bash 侧从未初始化 starship —— starship 必须在 rc 文件里 eval "$(starship init bash)" 才接管提示符。本机只有 fish 的 config.fish 有这一行,bash / zsh 都没有。
  4. 加重因素 —— /etc/environment 是空文件,/usr/lib/environment.d/99-environment.conf 只是指向它的符号链接。凡由 systemd / D-Bus 激活的进程,PATH 落回 systemd 内置默认值,变得不可预测。

修复

  1. 装静态链接版本到用户目录 ~/.local/bin/starship
  2. ~/.bashrc:PATH 改为追加式 export PATH="/usr/bin/:$PATH:/usr/local/bin";末尾加 eval "$(starship init bash)"
  3. ~/.zshrc 同样补 init
  4. ~/.config/fish/conf.d/00-path.fish:保证 fish 始终含 /usr/local/bin(fish 不读 /etc/profile)
  5. ~/.config/environment.d/10-path.conf:补上 systemd 用户会话的 PATH(需重新登录生效)

问题二:星火商店

启动器里看不到图标 找到原图标也运行不了 重装无效

根因:应用被整个踢出了列表

dde-daemon 扫描 desktop 文件时,若 Exec= 的命令解析不到,它不报错、不占位,而是把应用从列表里整个丢掉。表现就是"图标不显示 / 应用像消失了"。

而本机 dde-daemon 的 PATH 不含 /usr/local/bin

修复:新建 ~/.local/share/applications/spark-store.desktop,Exec 写绝对路径:

[Desktop Entry]
Type=Application
Exec=/usr/local/bin/spark-store %u ← 关键:绝对路径,不依赖 PATH
Icon=spark-store
Name[zh_CN]=星火应用商店
StartupWMClass=spark-store

问题三:玲珑商店社区版一闪即关

症状

图标正常显示,能点击,但窗口一闪而过;退出码 134(SIGABRT)。

根因:Flutter 的渲染后端与图形栈不匹配

修复:改底层的 wrapper

/usr/bin/linglong-store 本身就是一个三行的 bash 包装脚本:

#!/usr/bin/env bash
set -euo pipefail
exec /opt/linglong-store/linglong_store "$@"

在里面加一行导出 —— 启动器、任务栏、终端、D-Bus 激活,所有入口一次生效:

#!/usr/bin/env bash
set -euo pipefail

# 让 Impeller 改用 OpenGLES 后端,绕开 Vulkan 与 DlText 断言
export FLUTTER_LINUX_RENDERER=opengl

exec /opt/linglong-store/linglong_store "$@"

不确定修复方式是否存在风险 但确实是都修好了 如果有问题请大佬们多提点

Reply Favorite View the author
All Replies
avatar
罐子
Moderator
2026-09-24 06:37
#1
Reply View the author
avatar
wuhan
deepin
2026-09-24 09:23
#2
罐子:

我去研究研究

Reply View the author
avatar
186******01
deepin
2026-10-02 23:19
#3

【同样问题!!!】bash终端里 PATH 只有 /usr/sbin:/usr/bin:/sbin:/bin 了。还有更奇怪之处!

UOS专业版1070 X86_64,930 一次upgrade了201个包,然后打开终端 PATH 就变成这样了。系统回退就恢复原样了。

【不过话说回来,UOS的环境配置管理一直是一种非常“独特”的机制】这次升级出现PATH异常,原以为是修正“特殊”回归了现代linux配置管理机制,然而!稍加排查,发现并非如此!

1、奇怪1:从上手UOS,就发现PATH设置简直和windows机制一模一样:~/.profile、 /etc/profile 两个文件随便配置PATH,都能在非登录bash shell获得完整的PATH加载。【**这还是linux吗?这不是windows吗!**没搞明白,但觉得方便就一直盯着 /etc/profile 用了】

2、更奇怪2:这次升级后发现bash终端PATH没有了,查了一下~/.profile、/etc/profile 文件没被动过,由此以为是系统更新回归了现代linux配置管理机制。【但是,发现在非登录bash中 /etc/profile 仍然被加载了,其中JAVA_HOME、 MAVEN_HOME 等参数仍有效,只是PATH不知在哪被吃掉了。因此,机制未变!那又是为什么?】

如果仅是设置bash的完整PATH小事一桩,但以上奇怪之处,有没有人来解释一下。

Reply View the author
avatar
186******01
deepin
2026-10-08 00:17
#4

【UOS终端PATH丢失真正原因似乎找到了】

实质是此次upgrade,改变了 deepin-terminal 拉起的过程,追踪upgrade前后的父进程如下:

更新前: systemd (PID 1) → lightdm → lightdm → **start_session.bash **→ startdde → deepin-terminal → bash

更新后: systemd (PID 1) → startdde → deepin-terminal → bash

更新后 systemd 直接拉起只会传递类似/usr/bin:/usr/sbin等最基本的默认PATH给子进程;更新前的一系列过程从登录终端获得完整PATH,并继承给后续进程直到 deepin-terminal。

参考 https://planet.deepin.org/en/page/11/ ,deepin官方博客早在2021年底已提出了“DDE 现在正在做 Wayland 的支持,所以我们需要对目前的桌面环境结构进行调整, 考虑到 GNOME 和 KDE 都已经使用 systemd 来管理 session,我认为 deepin 团队也可以考虑这一步了”。

看来是在这次upgrade中终于迈出了这一步。以后PATH的设置方式也就放心了。

Reply View the author