状態
添付画像参照: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
質問
どうやってできるかデバッグこの問題?つまり、アイコンを復元するコマンドも問題ありませんが、何が間違っているのか、どのように解決するのかをより深く理解したいのです。
つまり:
- Firefoxはどこにありますか窓アイコンはどこから取得する必要がありますか?
- 存在するかどうかを確認できますか? (つまり、必ずしも別のファイルではなく、実行可能ファイルに埋め込まれたリソースである可能性があります。この場合、リソースが存在するかどうかを確認しますか?)
- どのパッケージが破損しているのか、どうすればわかりますか?
- アップグレードの中断によって他のパッケージが破損していないかどうかはどうすればわかりますか? (上記で実行したコマンドはシステムを修正したと推定されますが、少なくともFirefoxの場合はそうではありません。他のパッケージはまだ微妙な方法で破損している可能性があります。)
コメント
最近(成功的に)アップグレードされ、ウィンドウアイコンがまともな同じOS / DEを使用する別のVMがあります。つまり、これがパッケージのバグだとは思わない。
答え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
-を使用してパッケージを再インストールしました。これは修正に役立つかもしれませんが、それは役に立たないかもしれませんが、パッケージではありませんが、破損しているようです。)