回答:
Snapcraftは、複数のLinuxディストリビューション用の(クラフト)パッケージを簡単に作成するためのコマンドにバンドルされているツールのセットです。これらの.snapパッケージには通常、自己完結型のアプリが含まれ、安全な分離を提供し、Ubuntu Software Storeから、またはコマンドを使用して手動でインストールできます。snapcraft
snap install <snap-name>.snap
簡単に言えば、開発者は通常のツールを使用してコードを記述し、Snapcraftに配布用のコードを作成させます。Snapcraftは、開発者が既存のアプリをスナップ対応のLinuxプラットフォームに移植できるようにする点でも優れています。
Snapcraft:
snapcraft.yaml
を指定するファイルに依存しますSnapcraftを使用するには、Ubuntu 16.04 LTSが必要です。Ctrl+ Alt+でターミナルを開き、t次のコマンドでSnapcraftをインストールします。
sudo apt install snapcraft
sudo apt install build-essential # Optional, but useful for different builds
別のディストリビューションを使用している場合は、別のインストール手順を確認してください>
次の例では、貼り付けて共有できるサービスを含むパッケージを作成します。完了したら、テスト用に手軽なデバイスに手動でインストールするか、他のユーザー用にストアにアップロードできます。
まず、ターミナルを開き、サンプルリポジトリからサンプルをダウンロードします。
sudo apt install git
git clone https://github.com/ubuntu-core/snapcraft.git
cd snapcraft/demos/gopaste
snapcraft.yaml
そのディレクトリ内のファイルに注意してください。このファイルは、サービスと最終的な.snapのアセンブルに必要なパーツを指定します。オプションで、テキストエディタで調べることができます。
次にsnapcraft
、ターミナルでコマンドを実行します。これにより、すべてのsnapcraftサブコマンドが順番に実行され、パーツが構築され、結果が最終的な.snapパッケージに入れられます。開発中は、通常、ビルドとアセンブリ全体が機能すると確信できるまで、ステップを個別に実行します。
$ snapcraft
Pulling gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go get -t -d github.com/wisnij/gopaste/gopasted
Building gopaste
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go build github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build go install github.com/wisnij/gopaste/gopasted
env GOPATH=/tmp/snapcraft/examples/gopaste/parts/gopaste/build cp -a /tmp/snapcraft/examples/gopaste/parts/gopaste/build/bin /tmp/snapcraft/examples/gopaste/parts/gopaste/install
Staging gopaste
Snapping gopaste
Generated 'gopaste_1.0_amd64.snap' snap
コマンドの出力で、snapcraftが実行するステップを確認できます。
ノート:
gopaste_1.0_amd64.snap
(私の場合、amd64デスクトップでビルドしたことに注意してください。たとえば、Raspberry Pi 2パッケージには_armhf
アーキテクチャサフィックスがあります)。snapcraft pull
、snapcraft build
、snapcraft stage
またはsnapcraft snap
snapcraft -h
可能なすべてのコマンドの概要を簡単に確認できます。これで、Snapcraftでできることを簡単に確認できます。Snapcraftの詳細>
"And that's it for a quick glimpse of what Snapcraft can do!"