Mi aplicación instantánea es una aplicación wxWidgets. Funciona bien después de la compilación y la vinculación, pero no funciona una vez instalado desde un instante. Supongo que cuando escribo el nombre de mi aplicación, tal vez 'snapd' vaya y ejecute el contenedor en el /snap/<myappname>/x1/
directorio. En cualquier caso, entiendo...
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?
Mi única suposición es que no todas las dependencias se encuentran y se colocan dentro del /snap/<mayappname>/x1/usr/lib/x86_64-linux-gnu/
directorio mediante instalación instantánea. Intenté probar esta hipótesis de dos maneras. Primero, al quedarse sin el prime
directorio antes de la instalación, pero el error no se puede reproducir allí. Y segundo, copiando lo que creía que eran las bibliotecas necesarias en dicho directorio, pero es de solo lectura, incluso si cambio el confinamiento de Snapcraft devmode
y uso la --devmode
bandera durante la instalación, e incluso si lo intento chmod 777 .
como root para gritar alto.
Si alguien está interesado en echar un vistazo a mi estúpido proyecto, se puede clonar desde...
http://github.com/spencerparkin/RubiksCube.git
El archivo snapcraft.yaml está configurado para ejecutarse en scons. No intentaría hacer snapcraft en la raíz del proyecto. Copio el archivo snapcraft.yaml a algún otro directorio antes de intentarlo.
He recorrido un largo camino y me siento muy cerca de hacer que esto funcione... sólo un obstáculo tras otro... Apesto.
Respuesta1
Así que analicemos esto, ya que hay muchos problemas aquí:
Huyendo deprime
Cuando ejecute prime
directamente desde su sistema clásico, verá todas las bibliotecas que tiene su sistema clásico, por lo que en realidad no es la mejor manera de hacerlo. Cuando se ejecuta comoquebrarel sistema de archivos raíz que realmente se ve es, en este caso, ubuntu-core
o core
.
Para experimentar cómo se sentirá el entorno, podría ser mejor acceder a un shell para ese entorno; puede hacerlo ejecutando:
snap run --shell <snap-name>.<app-name>
Ajuste de solo lectura
Los snaps cuando se instalan para un snap real son un montaje en un squashfs
, este sistema de archivos es de solo lectura y la razón por la que no se puede escribir ni realizar modificaciones en el snap instalado.
Durante el desarrollo, podría ser mejor hacerlo desde el directorio de su proyecto:
snap try prime [--devmode]
Al hacerlo, puede realizar ediciones en vivo en su prime
directorio para probar variaciones de cosas.
Cómo iniciar la aplicación
Las advertencias de carga del módulo no son tan malas, también ocurren en algunas instantáneas. Lo malo es que no puede encontrar una pantalla. Para comenzar rápidamente, existen lanzadores de escritorio que pueden permitirle arrancar bastante rápido.
Se entregan como piezas. Para tener una idea de cómo funciona esto con Snapcraft, ejecute
snapcraft update
snapcraft search desktop
Y para ver qué parts
hace uno de estos, corre
snapcraft define <part-name>
Hay más información sobre los lanzadores de escritorio disponibles enhttps://insights.ubuntu.com/2016/07/06/ubuntu-app-developer-blog-anusing-new-snap-desktop-launchers/