libgdk-pixbuf2.0-0缺失libpixbufloader-jpeg/png.so致AppImage运行失败求助
解决Ubuntu 22.04/Linux Mint下AppImage运行时libgdk-pixbuf2.0-0加载器缺失问题
问题重现
在Ubuntu 20.04上运行AppImage正常,但在Ubuntu 22.04或Linux Mint中启动时触发Gtk警告并崩溃:
(AppRun.wrapped:11464): Gtk-WARNING **: 12:59:52.686: Could not load a pixbuf from icon theme. 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/Yaru/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/Yaru/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3) Aborted (core dumped)
排查确认:/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/目录缺失libpixbufloader-jpeg.so和libpixbufloader-png.so,且loaders.cache无对应格式条目;重装libgdk-pixbuf2.0-0、执行缓存更新命令无效。
解决步骤
安装独立的pixbuf加载器包
png/jpeg加载器并不包含在libgdk-pixbuf2.0-0主包中,需单独安装:sudo apt install libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common gdk-pixbuf-loader-libpng gdk-pixbuf-loader-libjpeg若部分包找不到,可尝试兼容包:
sudo apt install libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libpng-dev libjpeg-dev强制重新生成加载器缓存
删除旧缓存后重新生成,避免缓存残留问题:sudo rm /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache sudo /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache指定AppImage使用系统加载器缓存
AppImage可能优先调用自身库路径,强制它使用系统缓存:export GDK_PIXBUF_MODULE_FILE=/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache ./your-appimage-file.AppImage如需永久生效,将环境变量写入bash配置:
echo 'export GDK_PIXBUF_MODULE_FILE=/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache' >> ~/.bashrc source ~/.bashrc手动修复库链接(极端情况)
若加载器已安装但路径错误,手动创建软链接:# 查找加载器实际位置 sudo find /usr -name libpixbufloader-png.so # 假设找到路径为/usr/lib/x86_64-linux-gnu/libpixbufloader-png.so,创建链接 sudo ln -s /usr/lib/x86_64-linux-gnu/libpixbufloader-png.so /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/ sudo ln -s /usr/lib/x86_64-linux-gnu/libpixbufloader-jpeg.so /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/ # 再次更新缓存 sudo /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
内容的提问来源于stack exchange,提问作者Anna
相关产品推荐
相关产品推荐

