情况
请参阅附图: Firefox 的图标窗户升级中断(虚拟机崩溃)后消失,但桌面和开始菜单中的图标正常。 (如果重要的话,我正在使用 Lubuntu 20.04 和 LXQt DE。)
到目前为止我做了什么
我尝试了各种方法来修复中断的升级,这些方法似乎做得很好(即成功完成,没有错误消息),包括删除/重新安装 Firefox,但这显然没有帮助。
来自 bash 历史记录:
pkg --configure -a
apt-get install -f
apt autoremove
apt-get update --fix-missing
dpkg-reconfigure -a
dpkg --configure -a
apt-get clean
apt-get -f install
apt-get update
apt-get upgrade
apt install --reinstall firefox
dpkg -P firefox
apt install firefox
问题
我怎么能够调试这个问题?换句话说,虽然恢复图标的命令也很好,但我想更深入地了解出了什么问题以及如何修复它。
IE:
- 火狐在哪里窗户图标应该来自哪里?
- 我怎样才能检查它是否存在? (我的意思是,也许它不一定是一个独立的文件,而是内置于可执行文件或类似文件中的资源。在这种情况下,我如何检查该资源是否存在?)
- 我怎样才能找出哪个包损坏了?
- 我怎样才能发现没有其他软件包因升级中断而损坏? (我上面运行的命令据说修复了系统,但显然情况并非如此,至少对于 Firefox 来说——也许其他软件包仍然以微妙的方式被破坏)
评论
我有另一个具有相同操作系统/DE 的虚拟机,最近也升级了(成功),其中窗口图标很好。换句话说,我认为这不是包中的错误。
答案1
我终于找到了解决方案!
长话短说:
运行后/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
图标重新出现。
更长的版本:
经过多次无用的删除和重新安装 Firefox 的尝试后,我发现它在尝试拖动选项卡时崩溃,并显示以下消息:
(crashreporter:11662): Gtk-WARNING **: 21:57:15.194: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/check-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/gnome/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Bail out! Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/gnome/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
所以损坏的不是Firefox,而是一些Gtk图标包。
经过一番研究,我发现了上面的命令。 (注意:我发现该命令/usr/bin/gdk-pixbuf-query-loaders --update-cache
不起作用,因此我首先使用apt-get install --reinstall libgdk-pixbuf2.0-0
-- 重新安装了该软件包,这可能有助于也可能不会有助于修复,但我有一种感觉,这不是软件包,而是损坏了。 )