суббота, 6 января 2024 г.

Viber 21.0.0.1 не запускается в Debian 12

Viber перестал запускаться в Debian 12 после обновления до версии 21.0.0.1. При запуске в консоли выдаёт ошибку

$ /opt/viber/Viber 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  /opt/viber/Viber

Для отладки проблем с плагинами Qt нужно запустить приложение с переменной окружения QT_DEBUG_PLUGINS=1

$ QT_DEBUG_PLUGINS=1 /opt/viber/Viber

[output skipped]

qt.core.plugin.factoryloader: Got keys from plugin meta data QList("linuxfb")
qt.core.plugin.factoryloader: checking directory path "/opt/viber/platforms" ...
qt.core.library: "/opt/viber/plugins/platforms/libqxcb.so" cannot load: Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)
qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/opt/viber/plugins/platforms/libqxcb.so" : "Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  QT_DEBUG_PLUGINS=1 /opt/viber/Viber

Xcb плагин не может найти libxcb-cursor.so.0, нужно проверить зависимости у /opt/viber/plugins/platforms/libqxcb.so

$ ldd /opt/viber/plugins/platforms/libqxcb.so | grep 'not found'
	libxcb-cursor.so.0 => not found

Теперь нужно найти пакет, который предоставляет libxcb-cursor.so.0 и установить его

$ apt-file search libxcb-cursor.so.0
libxcb-cursor0: /usr/lib/x86_64-linux-gnu/libxcb-cursor.so.0
libxcb-cursor0: /usr/lib/x86_64-linux-gnu/libxcb-cursor.so.0.0.0

$ sudo apt install libxcb-cursor0

После этого Viber стал запускаться, но это не гарантирует что нет других проблем с зависимостями. Пробую найти все разделяемые библиотеки из пакета Viber и проверить их зависимости

$ for i in $(find /opt/viber -type f -name '*.so*'); do ldd $i | grep -q 'not found' && (echo $i; ldd $i | grep 'not found'); done
/opt/viber/plugins/imageformats/libqtiff.so
	libtiff.so.5 => not found
/opt/viber/plugins/imageformats/libqmng.so
	libmng.so.2 => not found

Аналогично ищу какие пакеты предоставляют эти библиотеки и устанавливаю их

$ apt-file search libmng.so.2  
libmng2: /usr/lib/x86_64-linux-gnu/libmng.so.2
libmng2: /usr/lib/x86_64-linux-gnu/libmng.so.2.0.2

$ sudo apt install libmng2

Поиск libtiff.so.5 ничего не дал, т.к. в Debian 12 поставляется libtiff.so.6, но нужный пакет есть в Debian 11

$ wget -P /tmp http://security.debian.org/debian-security/pool/updates/main/t/tiff/libtiff5_4.2.0-1+deb11u5_amd64.deb http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2.1+deb11u2_amd64.deb

$ sudo dpkg -i /tmp/libwebp6_0.6.1-2.1+deb11u2_amd64.deb /tmp/libtiff5_4.2.0-1+deb11u5_amd64.deb

Ещё раз проверяю зависимости библиотек Viber

$ sudo dpkg -i /tmp/libwebp6_0.6.1-2.1+deb11u2_amd64.deb /tmp/libtiff5_4.2.0-1+deb11u5_amd64.deb

В этот раз ничего не вывело и значит все зависимости установлены.

Комментариев нет:

Отправить комментарий