Snappy

Snappyとはカノニカルが設計・開発したソフトウェアデプロイメントシステムかつパッケージ管理システムであり、元々はUbuntu Phoneオペレーティングシステム用に設計・開発された。Snappyのパッケージは 'Snap' と呼ばれ、Snapを使うツールは 'Snapd' と呼ばれる。Snapは様々なLinuxディストリビューションで動作するので、ディストリビューションの上流のソフトウェアデプロイメントに依存しない。Snappyのシステムは携帯電話、クラウド、IoTやデスクトップパソコン向けに設計されている。
機能.
ソフトウェアにおける "Snap" アプリケーションパッケージは自己完結型であるため、様々なLinuxディストリビューションで動作する。APTやYUMなどの伝統的なLinuxパッケージ管理のアプローチでは、Linuxパッケージ毎に適合させた特別なパッケージが必要となるため、開発者からソフトウェアのエンドユーザーに対してのアプリケーションデプロイメントが遅延する原因となるが、Snappyのアプローチはこれとは異なる。Snap自体は外部のストア（アプリケーションストア）に全く依存せずどこからでも入手できるため、上流のソフトウェアデプロイメント用に利用可能である。SnapがUbuntuやそれ以外のLinuxにデプロイされるとUbuntu app storeがデフォルトバックエンドとして使用されるが、他のストアもバックエンドとして利用可能である。
開発者はコマンドラインツール、バックグラウンドサービス、そしてデスクトップアプリケーションのいずれかの作成においても同様にSnapを使うことができる。Snapアプリケーションを使うと、アトミック操作を通じた更新や差分による更新が可能である。
2016年6月、SnapdはUbuntu CoreだけでなくどのLinuxディストリビューションでも利用できるよう、様々なLinuxディストリビューションに移植された。SnapdはArch Linux、CentOS、Debian、Fedora、Gentoo Linux、OpenWrt、openSUSEで既に利用可能であるか、または開発中である。各ディストリビューションはSnapメタデータを解釈することにより、ディストリビューション固有の方法でSnapのセキュリティやその他の機能を実装することが可能となる。
Snapcraft.
Snapcraftは、開発者によって作られたプログラムをSnappy用にSnapフォーマットでパッケージングするツールである。
'.snap'ファイルフォーマット.
snapファイルフォーマットは圧縮された単一のファイルシステムであり、ホストのオペレーティングシステムにより動的にマウントされる。Snapフォーマットには宣言的メタデータも含まれており、これは適切に整形された安全なサンドボックスやコンテナを設定するためSnapシステムにより解釈される。
反響と使用例.
Snappyパッケージは消費者向け製品からエンタープライズデバイス管理ゲートウェイまでをカバーするIoT環境に展開されている。SnappyはUbuntu 16.04デスクトップイメージからデフォルトで含まれている。
近年のシステムにおいて、Linuxディストリビューションに依存しない様々なLinuxディストリビューションへのポータブルソフトウェアデプロイメントという、Snappyと類似の目標を持つシステムには、Flatpakがある。Snappyはモバイルに焦点を当てたカノニカルの "Click" パッケージフォーマットの進化形であり後継である。
またsnapファイルはhttps://search.apps.ubuntu.com/api/v1/package/の後にソフト名を入れると最新版のみがダウンロード出来る。
批判.
スクリーンキャプチャツールPeekの開発者は、Snapパッケージへのサポートを中止した。一方、Flatpakおよびのサポートは継続している。その理由として以下の点を挙げている。
Linux Mintは、APTでChromiumをインストールしようとすると自動的にSnapパッケージをインストールする仕様に対し、SnapがAPTに取って代わることは決してないという約束を破るものとして、Linux Mint20より最初からSnapをインストールしない従来の仕様を堅持するとともに、APTからSnapのインストールを無効にする措置を取った(ユーザーが手動で特定のファイルを削除すればインストール可能)、また独自にビルドしたChromiumパッケージの提供を開始した。