Как использовать appimage для развертывания приложения qt5
Я использую appimage http://appimage.org/ чтобы упаковать свое приложение в отдельный исполняемый файл.
Я делаю это на тестировании Debian, Ленни.
Мое приложение использует множество библиотек с открытым исходным кодом (qt, python pythonqt fftw hdf4/5 gsl netpbm qwt), и все было в порядке с использованием Qt4. Я могу скомпилировать свое приложение на debian и создать образ appdir, который без проблем работает на mint (с xfce).
Это перестало работать, когда я переключаюсь на Qt5.
Теперь appimage работает на Debian, но не на Mint, я получаю эту ошибку:
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Available platform plugins are: eglfs, kms, linuxfb, minimal, minimalegl, offscreen, xcb.
Reinstalling the application may fix this problem.
Aborted
Обратите внимание, что messege не согласован: сначала он говорит, что мне не хватает xcb
и чем он делает доступным.
Я скопировал каталог плагинов в моем приложении usr/lib
дерево. У меня на хосте установлен xcb apt-get install libx11-xcb1
Мой файл AppRun выглядит так:
#!/bin/bash
HERE="$(dirname "$(readlink -f "${0}")")"
cd "${HERE}/usr/"
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${LD_LIBRARY_PATH}"
export PATH="${HERE}/usr/bin:${PATH}"
export QT_PLUGIN_PATH="${HERE}/usr/lib"
exec "${HERE}/usr/bin/Neutrino" "$@"
cd -
Что мне не хватает?
1 ответ
Многие приложения Qt5, такие как Krita, Scribus и Subsurface, распространяются как AppImages, так что это определенно возможно.
Возможно, вам не хватает некоторых компонентов, которые необходимо связать внутри AppImage. В частности, плагины Qt должны быть включены в AppImage, чтобы он работал.
Смотрите здесь пример приложения Qt5.5, упакованного как AppImage.
Обратите внимание, что обычно для компиляции рекомендуется использовать старую базовую систему, такую как CentOS 6, потому что результирующие AppImages будут совместимы с большим количеством дистрибутивов, а не только с последними.
Если вы разместите ссылку на свой проект или откроете проблему на https://github.com/probonopd/AppImages/issues я, возможно, смогу дать вам более подробные указания.