2016-04-15 6 views
0

Ich verwende appimage http://appimage.org, um meine Anwendung in einer eigenständigen ausführbaren Datei zu packen.Verwendung von appimage zum Bereitstellen von qt5-Anwendung

Ich bin dies auf Debian Test Lenny.

Meine Anwendung verwendet viele Open-Source-Bibliotheken (qt, Python pythonqt fftw hdf4/5 GSL netpbm qwt) und alles war in Ordnung mit Qt4. Ich kann meine App auf debian kompilieren und ein appdir-Image erstellen, das problemlos auf mint läuft (mit xfce).

Dies funktioniert nicht mehr, wenn ich auf Qt5 umschalte.

Jetzt läuft der AppImage auf debian, aber nicht auf Minze, bekomme ich diesen Fehler:

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 

Beachten Sie, dass die messege nicht konsistent ist: FIRTS es sagt mir fehlt xcb und als es maks als verfügbar.

Ich habe das Plugins-Verzeichnis in meiner App usr/lib Baum kopiert. Ich habe XCB auf dem Host installiert apt-get install libx11-xcb1

Meine AppRun Datei sieht wie folgt aus:

#!/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" "[email protected]" 
cd - 

Was bin ich?

Antwort

2

Viele Qt5-Anwendungen wie Krita, Scribus und Subsurface werden als AppImages verteilt, also ist es definitiv möglich.

Vermutlich fehlen einige Komponenten, die in AppImage gebündelt werden müssen. Insbesondere müssen Qt-Plugins in AppImage gebündelt werden, damit es funktioniert.

Ein Beispiel für eine Qt5.5-App, die als AppImage gepackt wird, finden Sie unter here.

Beachten Sie, dass es im Allgemeinen empfehlenswert ist, ein altes Basissystem wie CentOS 6 zum Kompilieren zu verwenden, da die resultierenden AppImages mit mehr Distributionen kompatibel sind als nur mit den neuesten.

Wenn Sie einen Link zu Ihrem Projekt veröffentlichen oder ein Problem auf https://github.com/probonopd/AppImages/issues öffnen, kann ich Ihnen möglicherweise genauere Anweisungen geben.

+0

Danke! Ich sah diese Zeile im Skript scripus appimage: 'ldd usr/lib/qt5/plugins/platforms/libqxcb.so | grep "=>" | awk '{print $ 3}' | xargs -I '{}' cp -v '{}'./usr/lib' das könnte helfen, ich werde das morgen versuchen – bibi

+0

sorry @probono, aber es funktioniert nicht ... und natürlich habe ich installiert Plugins Verzeichnis in der Appdir '/ usr/lib/plugin' und ich kopierte auch alle Bibliotheken, die von jedem Plugin benötigt wurden ... ohne Erfolg. – bibi

+0

Der Code ist hier: https://github.com/aflux/neutrino, aber aufgrund einiger fehlender Bibliotheken beim Testen von Debian (qwt für qt5) und nicht vollständig kompilierten libs (pythonqt mit qt_all-Unterstützung) ist es ein Chaos zu bauen (das ist warum wollte ich sowas wie appimage) – bibi