Davor weglaufenprime

Davor weglaufenprime

Meine per Snap installierte App ist eine wxWidgets-Anwendung. Sie läuft nach der Kompilierung und Verknüpfung einwandfrei, funktioniert aber nicht, wenn sie per Snap installiert wurde. Ich gehe davon aus, dass, wenn ich den Namen meiner App eingebe, vielleicht „snapd“ den Wrapper im /snap/<myappname>/x1/Verzeichnis ausführt. Auf jeden Fall erhalte ich …

Gtk-Message: Failed to load module "overlay-scrollbar"
Gtk-Message: Failed to load module "gail"
Gtk-Message: Failed to load module "atk-bridge"
Gtk-Message: Failed to load module "unity-gtk-module"
23:11:06: Error: Unable to initialize GTK+, is DISPLAY set properly?

Meine einzige Vermutung ist, dass nicht alle Abhängigkeiten von Snap Install gefunden und im /snap/<mayappname>/x1/usr/lib/x86_64-linux-gnu/Verzeichnis abgelegt werden. Ich habe versucht, diese Hypothese auf zwei Arten zu testen. Erstens, indem ich das Verzeichnis vor der Installation verlassen habe prime, aber dort ist der Fehler nicht reproduzierbar. Und zweitens, indem ich die meiner Meinung nach benötigten Bibliotheken in das besagte Verzeichnis kopiert habe, aber es ist schreibgeschützt, selbst wenn ich die Snapcraft-Beschränkung ändere devmodeund das --devmodeFlag während der Installation verwende und selbst wenn ich es chmod 777 .um Himmels willen als Root versuche.

Wenn jemand Interesse hat, einen Blick auf mein dummes Projekt zu werfen, kann es geklont werden von …

http://github.com/spencerparkin/RubiksCube.git

Die Datei snapcraft.yaml ist so konfiguriert, dass sie von Scons ausgeführt wird. Ich würde Snapcrafting nicht im Projektstamm versuchen. Ich kopiere die Datei snapcraft.yaml in ein anderes Verzeichnis, bevor ich das versuche.

Ich habe es weit gebracht und fühle mich kurz davor, die Sache endlich zum Laufen zu bringen, aber eine Straßensperre nach der anderen … ich bin einfach nicht in der Lage.

Antwort1

Lassen Sie uns das Ganze auseinandernehmen, da es hier viele Probleme gibt:

Davor weglaufenprime

Wenn Sie es primedirekt von Ihrem klassischen System aus ausführen, werden Ihnen alle Bibliotheken angezeigt, die Ihr klassisches System hat. Dies ist also nicht wirklich die beste Vorgehensweise. Wenn Sie es alsSchnappschussdas tatsächlich angezeigte Root-Dateisystem ist in diesem Fall ubuntu-coreoder core.

Um zu erfahren, wie sich die Umgebung anfühlt, ist es möglicherweise besser, in eine Shell für diese Umgebung zu wechseln. Dies können Sie tun, indem Sie Folgendes ausführen:

snap run --shell <snap-name>.<app-name>

Nur-Lese-Snap

Wenn Snaps für einen tatsächlichen Snap installiert sind, handelt es sich um eine Einbindung in ein squashfs. Dieses Dateisystem ist schreibgeschützt und der Grund dafür ist, dass Sie auf den installierten Snap weder schreiben noch Änderungen daran vornehmen können.

Während der Entwicklung ist es möglicherweise besser, Folgendes von Ihrem Projektverzeichnis aus zu tun:

snap try prime [--devmode]

Auf diese Weise können Sie Live-Änderungen an Ihrem primeVerzeichnis vornehmen, um Variationen von Dingen zu testen.

Starten der App

Die Warnungen beim Laden der Module sind nicht so schlimm, sie treten auch bei einigen Snaps auf. Schlimm ist, dass kein Display gefunden werden kann. Um schnell loszulegen, gibt es Desktop-Launcher, die Sie ziemlich schnell booten lassen.

Sie werden als Einzelteile geliefert, um ein Gefühl dafür zu bekommen, wie das mit Snapcraft funktioniert, führen Sie

snapcraft update
snapcraft search desktop

Und um zu sehen, was einer von ihnen partstut, führen Sie

snapcraft define <part-name>

Weitere Informationen zu Desktop-Launchern finden Sie unterhttps://insights.ubuntu.com/2016/07/06/ubuntu-app-developer-blog-announcing-new-snap-desktop-launchers/

verwandte Informationen