私のスナップインストールされたアプリはwxWidgetsアプリケーションです。コンパイルとリンケージの後は正常に動作しますが、一度インストールすると動作しません。アプリの名前を入力すると、おそらく 'snapd'が/snap/<myappname>/x1/
ディレクトリの下でラッパーを実行することを想定しています。いずれにせよ、私は得る...
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?
私の唯一の推測は、スナップインストールによってすべての依存関係が検出され、/snap/<mayappname>/x1/usr/lib/x86_64-linux-gnu/
ディレクトリ内に配置されるわけではないということです。この仮説を2つの方法でテストしようとしました。まず、インストール前にprime
ディレクトリを使い果たすことで、バグはそこで再現できません。次に、必要なライブラリと思われるものを上記のディレクトリにコピーしますが、スナップクラフトの制限をdevmode
に変更し、インストール中に--devmode
フラグを使用しても、読み取り専用です。そして大声で叫ぶためのルートとしてchmod 777 .
を試しても.
誰かが私の愚かなプロジェクトを見てみたいと思っているなら、それをクローンすることができます...
http://github.com/spencerparkin/RubiksCube.git
Snapcraft.yamlファイルは、sconsから実行されるように構成されています。私はプロジェクトのルートでスナップクラフトを試みません。試してみる前に、snapcraft.yamlファイルを他のディレクトリにコピーします。
私は長い道のりを歩んで、このことを実際に機能させることに非常に近いと感じています...ただ一つの障害物が次々と...私は吸います。
ここに多くの問題があるので、このアパートを取りましょう:
prime
から実行クラシックシステムから直接prime
から実行すると、クラシックシステムにあるすべてのライブラリが表示されるため、実際には最適な方法ではありません。 snapとして実行すると、実際に表示されるルートファイルシステムは、この場合はubuntu-core
またはcore
です。
環境がどのように感じるかを体験するために、その環境のシェルに飛び込む方が良いかもしれません、あなたはそれを実行することによってそうすることができます:
snap run --Shell <snap-name>.<app-name>
実際のスナップ用にインストールされたスナップはsquashfs
へのマウントであり、このファイルシステムは読み取り専用であり、インストールされたスナップに書き込みおよび変更を加えることができない理由です。
開発中は、プロジェクトディレクトリから行う方が良い場合があります。
snap try prime [--devmode]
そうすることで、prime
ディレクトリを実際に編集して、さまざまなものをテストできます。
モジュールのロード警告はそれほど悪くはありませんが、いくつかのスナップでも同様に発生します。悪いのは、ディスプレイが見つからないことです。すぐに使い始めるために、デスクトップランチャーを使用すると、かなり早くブートストラップできます。
これらは部品として提供され、スナップクラフトでこれがどのように機能するかを感じるために、実行します
snapcraft update
snapcraft search desktop
そして、これらのparts
の1つが何をするかを見るために、実行します
snapcraft define <part-name>
デスクトップランチャーに関する詳細情報は https://insights.ubuntu.com/2016/07/06/ubuntu-app-developer-blog-announcing-new-snap-desktop-launchers/ で入手できます。