Snapcraftとは何ですか?


16

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

Snapcraftとは何ですか?

回答:


27

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

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

Snapcraft:

  • インテリジェント:さまざまなソフトウェア(パーツ)をリモートソースから取得、ビルド、およびアセンブルして、機能するために必要なすべての依存関係を含む最終的な.snapパッケージを作成します。
  • レシピが必要:パッケージの作成に必要なパーツプラグイン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. プル:リモートGithubリポジトリから必要なgopasteパーツからコードをプルします
  2. ビルド:gopasteをローカルでビルドします
  3. ステージ:ビルド後、パーツは単一のディレクトリツリー、「ステージングエリア」に配置されます
  4. スナップ:最終的な.snapパッケージは、ステージング領域で組み立てられたパーツから作成されます

ノート:

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

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


9
私はコメントに感謝していますが、私はスナップクラフトの開発者ではありませんが、UbuntuサイトでUbuntuスナップを作成するツールが何であるかを説明し、それを使用する方法がスパムになる可能性もありません。
デビッドプラネラ

機能のリストにある言葉遣いがきっかけでした。また"And that's it for a quick glimpse of what Snapcraft can do!"
イスマエルミゲル

1
ここでデイビッドに同意します。
dholbach

1
コードは現在Github上にあるため、bzr部分は同等のgitコマンドに置き換える必要があります。
ラピスデコ

1
また、これを行うには、bzrではなくgitを使用している場合、gitとgccをインストールする必要があります。
ラピスコー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.