Ubuntu snap の Firefox が起動しない。 XPCOMGlueLoad error for file /snap/firefox/2356/usr/lib/firefox/libmozgtk.so: libgtk-3.so.0: cannot open shared object file: No such file or directory Couldn't load XPCOM.
Firefox を起動しようとターミナルから $ firefox
を実行すると
XPCOMGlueLoad error for file /snap/firefox/2356/usr/lib/firefox/libmozgtk.so: libgtk-3.so.0: cannot open shared object file: No such file or directory Couldn't load XPCOM.
というエラーが出て起動しなくなったので、その原因と解決方法。
Ubuntu のバージョン
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
Firefox のパス
$ type firefox firefox is hashed (/snap/bin/firefox) $ ls -l /snap/bin/firefox lrwxrwxrwx 1 root root 13 Feb 16 12:19 /snap/bin/firefox -> /usr/bin/snap
エラーの内容をみると libgtk-3.so.0
というライブラリが開けないというものなので locate
で libgtk-3.so.0
が存在するか確認するも何故かバッチリ在る
$ locate libgtk-3.so.0 /snap/gnome-42-2204/56/usr/lib/x86_64-linux-gnu/libgtk-3.so.0 /snap/gnome-42-2204/56/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.31 /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 /usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2404.29
ライブラリはあるので $ snap run firefox
ではなく /snap
以下にあるバイナリを直接実行
$ /snap/firefox/current/usr/lib/firefox/firefox
すると、firefox は何ら問題なく起動する。
原因
リスト表示($ snap list
)すると、gnome パッケージの Notes の項目が broken になっている。snap run firefox
で起動すると snap の gnome-3-xx
の何れかに在る libgtk-3.so.0
を使うようで、以前にストレージ容量を増やすため 古い snap パッケージ削除祭り をしたときに必要ないだろうと、削除してしまったのが原因かもしれない。
gnome-3-26-1604 ... broken gnome-3-28-1804 ... broken gnome-3-34-1804 ... broken gnome-3-38-2004 ... broken
解決法
以下のスクリプトを実行して broken なパッケージを削除してインストールし直す
#!/bin/sh set -x _func_main() { local PKGS="`snap list | awk '/broken/{print $1}'`" for v in $PKGS; do sudo snap remove "$v" done for v in $PKGS; do sudo snap install "$v" done } _func_main