Mon application installée de manière instantanée est une application wxWidgets. Il fonctionne bien après la compilation et la liaison, mais il ne fonctionne pas une fois installé instantanément. Je suppose que lorsque je tape le nom de mon application, c'est peut-être 'snapd' qui lance le wrapper dans le répertoire /snap/<myappname>/x1/
. En tout cas, je reçois ...
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?
Ma seule supposition est que toutes les dépendances ne sont pas trouvées et placées dans le répertoire /snap/<mayappname>/x1/usr/lib/x86_64-linux-gnu/
par snap install. J'ai essayé de tester cette hypothèse de deux manières. Tout d’abord, en exécutant le répertoire prime
avant l’installation, mais le bogue n’est pas reproductible ici. Et deuxièmement, en copiant ce que je croyais être les bibliothèques nécessaires dans ledit répertoire, mais il est en lecture seule, même si je modifie le confinement de snapcraft en devmode
et utilise l'indicateur --devmode
pendant l'installation, et même si j'essaie chmod 777 .
comme racine pour crier à haute voix.
Si quelqu'un est intéressé à jeter un oeil à mon projet stupide, il peut être cloné à partir de ...
http://github.com/spencerparkin/RubiksCube.git
Le fichier snapcraft.yaml est configuré pour s'exécuter à partir de scons. Je n'essaierais pas de faire de la snapcrafting à la racine du projet. Je copie le fichier snapcraft.yaml dans un autre répertoire avant d’essayer.
J'ai parcouru un long chemin et je me sens si près de faire en sorte que cette chose fonctionne ... juste un obstacle après l'autre ... Je crains.
Alors prenons ce point car il y a beaucoup de problèmes ici:
prime
Lorsque vous utilisez prime
directement de votre système classique, vous verrez toutes les bibliothèques de votre système classique. Ce n'est donc pas vraiment la meilleure façon de le faire. Lorsqu'il est exécuté en tant que capture , le système de fichiers racine réellement vu est, dans ce cas, ubuntu-core
ou core
.
Pour faire l'expérience de l'environnement, il peut être préférable de sauter dans un shell pour cet environnement, vous pouvez le faire en exécutant:
snap run --Shell <snap-name>.<app-name>
Les instantanés installés pour un accrochage réel sont un montage sur un squashfs
, ce système de fichiers est en lecture seule et la raison pour laquelle vous ne pouvez pas écrire et apporter des modifications à l'accrochage installé.
Pendant le développement, il peut être préférable de le faire à partir du répertoire de votre projet:
snap try prime [--devmode]
Ce faisant, vous pouvez modifier en direct votre répertoire prime
afin de tester différentes variantes.
Les avertissements de chargement de module ne sont pas si mauvais, ils se produisent également lors de quelques instantanés. Ce qui est mauvais, c'est qu’il ne trouve pas d’affichage. Pour démarrer rapidement, il existe des lanceurs de bureau qui peuvent vous aider à démarrer assez rapidement.
Ils sont livrés en tant que pièces, pour avoir une idée de la façon dont cela fonctionne avec snapcraft, run
snapcraft update
snapcraft search desktop
Et pour voir ce que l'un de ces parts
fait, lancez
snapcraft define <part-name>
Il existe plus d'informations sur les lanceurs de bureau disponibles sur https://insights.ubuntu.com/2016/07/06/ubuntu-app-developer-blog-announcing-new-snap-desktop-launchers/