~amd64
在运行 KDE Plasma 5.26.5 ( ) 的 Gentoo 系统上将Qt 更新到 5.15.8(测试)后~amd64
,我正在处理一系列桌面问题:
- 所有启动器均已损坏,显示为空白文件。如果我单击任何启动器,我会从 Plasma Workspace 收到一条 Toast 通知,并显示错误“未知的应用程序文件夹”。
- 桌面本身显示以下错误消息:
文件或文件夹 $HOME/Desktop 不存在。
- 应用程序启动器菜单完全是空的。
- 所有文件关联均丢失。如果我通过 KRunner 打开 Dolphin(最小化所有窗口并在桌面上键入)并尝试打开任何文件,无论文件类型如何,我都会得到一个空的应用程序列表。
将 Qt 更新回滚到 5.15.7(稳定,amd64
)没有帮助。桌面在更新期间正在运行,因此更新过程中可能会损坏某些内容。
我确实有八天前的系统 Snapper 快照,所以我想知道是否有一些特定的配置文件已损坏,我可以恢复这些文件以从这种情况中恢复。不然问题出在哪里呢?我真的不想删除我的整个 Plasma 配置。
编辑:在全新的用户帐户上也会出现相同的问题,因此问题出在 KDE 本身上。
编辑2:重建 Qt 和 KDE 软件包没有帮助。
编辑3:将系统(但不是/home
)恢复到最后一个快照修复了桌面错误消息,但没有修复损坏的启动器。删除所有qmlcache
文件夹.cache
没有帮助。
编辑4:dev-qt/*
和软件包kde*/*
是使用 LLVM/Clang 15 工具集构建的。
大多数问题都可以在下面的屏幕截图中看到。
答案1
Gentoo 上有完全相同的问题,我也用 clang 编译了所有内容(但是没有 LTO)。对我来说,这种情况也是在 Qt 更新到 5.15.8 之后发生的,但是我不确定这个问题是否较早出现,并且更新 dev-qt 使缓存失效,从而使这个问题变得可见。
使用和dev-qt/*-5.15.8-9999
中的版本以及覆盖中的设置时,此问题仍然存在。qt
kde-frameworks-5-live
kde-gear-live
kde-plasma-live
kde
~/.config
还清理了、~/.cache
和中找到的所有 qt 和 kde 配置文件~/.local/share/
。
我确实在这里提交了一个错误https://bugs.kde.org/show_bug.cgi?id=464140,但是我不确定这是否是正确的地方,或者 kservice 是否真的是问题所在。
编辑1:dev-qt/*
强制使用、的 gcc 进行重建kde-frameworks/*
,kde-plasma/*
并kde-apps
修复了问题(至少对于 git 版本而言)。
编辑2:用 gcc重建~amd64
包并且它也能工作,所以罪魁祸首似乎是 clang-15.0.6
编辑3:clang
使用with时也会出现同样的问题-O2
。可以排除激进的编译器标志问题。不过我可以把问题归结为dev-qt/*
,用 编译这个类别gcc
应该足够了。
答案2
我最终不得不将系统回滚到最后一个快照(不包括/home
、一些配置和日志文件以及内核和模块),删除 中的所有.kcache
文件和qmlcache
文件夹~/.cache
,然后再次使系统保持最新状态。
我不确定出了什么问题,但我怀疑 KDE 软件包与最新的 Qt 软件包不能很好地配合。虽然我在测试 ( ~amd64
) KDE 软件包时没有遇到问题(并且我kde*/* ~amd64
在package.accept_keywords
)中遇到过问题,但我将暂时坚持使用稳定的 Qt(至少在下一次 KDE 更新之前)。
编辑:我在没有运行 X 服务器的情况下再次尝试 Qt 更新,并遇到了同样的问题。最终将其回滚