web-dev-qa-db-ja.com

Snapcraftとは何ですか?

Raspberry Pi 2デバイスでUbuntuのコアコアを試してみましたが、Snapcraftを使用して開発を行うことができると聞きました。現在、Ubuntu 16.04やその他のディストリビューションのスナップショットはデスクトップとサーバーで利用できると聞いています。

Snapcraftとは何ですか?

16
David Planella

Snapcraftはツールのセットsnapcraftコマンドの下にバンドルされており、簡単に複数のLinuxディストリビューション用の(クラフト)パッケージを作成するです。これらの.snapパッケージには通常、自己完結型のアプリが含まれ、安全な分離を提供し、Ubuntu Software Storeから、またはsnap install <snap-name>.snapコマンドを使用して手動でインストールできます。

簡単に言えば、開発者は通常のツールを使用してコードを記述し、Snapcraftに配布用のコードを作成させます。 Snapcraftは、開発者port既存のアプリをスナップ対応のLinuxプラットフォームに対応させることにも優れています。

Snapcraft:

  • インテリジェント:リモートソースからさまざまなソフトウェア(parts)を取得、ビルド、およびアセンブルして、機能するために必要なすべての依存関係を含む最終的な.snapパッケージに入れます。
  • レシピが必要:パッケージの作成に必要なpartsおよびpluginsを指定するsnapcraft.yamlファイルに依存します
  • プラグインで拡張可能。幅広いアプリビルドに対応するための最も一般的なビルドシステムプラグインのセットが同梱されていますが、 新しいもので簡単に拡張できます にできます。

3分間のSnapcraftツアー

UbuntuにSnapcraftをインストールする

Snapcraftを使用するには、Ubuntu 16.04 LTSが必要です。で端末を開く Ctrl+Alt+t このコマンドでSnapcraftをインストールするだけです:

Sudo apt install snapcraft
Sudo apt install build-essential  # Optional, but useful for different builds

別のディストリビューションを使用している場合は、 別のインストール手順を確認してください>

テストドライブSnapcraft

次の例では、貼り付けて共有できるサービスを含むパッケージを作成します。完了したら、テスト用に手軽なデバイスに手動でインストールするか、他のユーザー用にストアにアップロードできます。

まず、ターミナルを開き、サンプルリポジトリからサンプルをダウンロードします。

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が実行するステップを確認できます。

  1. Pull:リモートGithubリポジトリから必要なgopasteパーツからコードを取得します
  2. ビルド:gopasteをローカルでビルドします
  3. Stage:ビルド後、パーツは単一のディレクトリツリー「ステージングエリア」に配置されます。
  4. Snap:最終的な.snapパッケージは、ステージング領域で組み立てられたパーツから作成されます

ノート:

  • 最終スナップファイルはgopaste_1.0_AMD64.snap(私の場合、AMD64デスクトップでビルドしたことに注意してください。たとえば、Raspberry Pi 2パッケージには_armhfアーキテクチャサフィックスがあります)。
  • 各コマンドを個別に実行することもできます:snapcraft pullsnapcraft buildsnapcraft stage、またはsnapcraft snap
  • snapcraft -hを使用して、使用可能なすべてのコマンドの概要を簡単に確認できます。

これで、Snapcraftでできることを簡単に確認できます。 Snapcraftの詳細>

27
David Planella