当我的计算机尝试锁定屏幕时,它失败,并产生以下消息:
屏幕锁已损坏,无法再解锁。为了解锁切换到虚拟终端(例如 Ctrl+Alt+F1),请登录并执行命令:
Loginctl 解锁会话
按 Ctrl+D 注销虚拟会话,然后切换回正在运行的会话 (Ctrl+Alt+F2)。
关于此事的报道有很多,但是这个是唯一一个似乎有解决方案的人。不幸的是,它不适用于我。
我正在运行 Fedora 36。
答案1
幸运的是,那个线程做有一个重要的建议:弄清楚它为什么坏了。更重要的是(因为前面的内容应该是显而易见的),它告诉如何要做到这一点:
$ /usr/lib/kscreenlocker_greet --testing
YMMV。对我来说,首先,正确的路径是/usr/libexec/kscreenlocker_greet
(find
必要时使用),错误是:
/usr/libexec/kscreenlocker_greet: symbol lookup error: /usr/libexec/kscreenlocker_greet: undefined symbol: _ZN12LayerShellQt6Window16setDesiredOutputEP7QScreen
此时,请尝试重新安装相关软件包,更重要的是,确保它们是最新的。
对我来说,这个问题是由于 和 不匹配造成的kscreenlocker
,因为后者的版本与RPM Fusion 的layer-shell-qt
过时版本挂钩。 qt5-qtwebengine-freeworld
(在撰写本文时,mirrors.rpmfusion.org 已擅离职守,这并没有帮助。)删除它后,我可以安装更新,问题就消失了。
希望知道如何诊断这一点对其他人有帮助!
答案2
是的,我可以确认在 Fedora 36 上删除此软件包并运行 dnf update 会有所帮助:
dnf remove qt5-qtwebengine-freeworld
dnf update
您还可以检查“dnf update”是否报告任何依赖项损坏的问题。
答案3
对我来说这是由于另一个问题(Maximum number of clients reachedMaximum number of clients reached
)。杀死一些僵尸进程或关闭 Firefox 可以解决这两个问题。