Snap (ソフトウェア)

Snap（旧称・Snappy）とはカノニカルが設計・開発したソフトウェアデプロイメントシステムかつパッケージ管理システムであり、元々はUbuntu Phoneオペレーティングシステム用に設計・開発された。パッケージは 'Snap' と呼ばれ、Snapを使うツールは 'Snapd' と呼ばれる。Snapは様々なLinuxディストリビューションで動作するので、ディストリビューションの上流のソフトウェアデプロイメントに依存しない。Snapのシステムは携帯電話、クラウド、IoTやデスクトップパソコン向けに設計されている。 ソフトウェアにおける "Snap" アプリケーションパッケージは自己完結型であるため、様々なLinuxディストリビューションで動作する。APTやYUMなどの伝統的なLinuxパッケージ管理のアプローチでは、Linuxパッケージ毎に適合させた特別なパッケージが必要となるため、開発者からソフトウェアのエンドユーザーに対してのアプリケーションデプロイメントが遅延する原因となるが、Snapのアプローチはこれとは異なる。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は、開発者によって作られたプログラムをSnap用にSnapフォーマットでパッケージングするツールである。 snapファイルフォーマットは圧縮された単一のファイルシステムであり、ホストのオペレーティングシステムにより動的にマウントされる。Snapフォーマットには宣言的メタデータも含まれており、これは適切に整形された安全なサンドボックスやコンテナを設定するためSnapシステムにより解釈される。 Snapパッケージは消費者向け製品からエンタープライズデバイス管理ゲートウェイまでをカバーするIoT環境に展開されている。SnapはUbuntu 16.04デスクトップイメージからデフォルトで含まれている。 近年のシステムにおいて、Linuxディストリビューションに依存しない様々なLinuxディストリビューションへのポータブルソフトウェアデプロイメントという、Snapと類似の目標を持つシステムには、Flatpakがある。Snapはモバイルに焦点を当てたカノニカルの "Click" パッケージフォーマットの進化形であり後継である。 またsnapファイルはhttps://search.apps.ubuntu.com/api/v1/package/の後にソフト名を入れると最新版のみがダウンロード出来る。 スクリーンキャプチャツールPeekの開発者は、Snapパッケージへのサポートを中止した。一方、FlatpakおよびAppImageのサポートは継続している。その理由として以下の点を挙げている。 snapdが公式のArch Linuxリポジトリで利用できなくなった事実を批判し、Snapは「まだ主にUbuntuをターゲットにしている（Ubuntu show）」。 開発者にとって、snapへの対応はFlatpakやAppImageよりも多くの時間が取られる。 Snapはsnapsプラットフォームを利用できるということ以外にあまり利点がない。 Ubuntu Software CenterにはAppStreamのデータ以上の利点はないにもかかわらず、専用のエントリーデータが必要である。 Linux Mintは、APTでChromiumをインストールしようとすると自動的にSnapパッケージをインストールする仕様に対し、SnapがAPTに取って代わることは決してないという約束を破るものとして、Linux Mint20より最初からSnapをインストールしない従来の仕様を堅持するとともに、APTからSnapのインストールを無効にする措置を取った(ユーザーが手動で特定のファイルを削除すればインストール可能)、また独自にビルドしたChromiumパッケージの提供を開始した。 ポータブルアプリケーション作成プログラム（英語版） AppImage Autopackage（英語版） Flatpak ROX Desktop（英語版）は、AppDirs（英語版）をアプリケーションバンドルとして使用している。 ^ a b “Announcing Ubuntu Core, with snappy transactional updates!” (9 December 2014). 2017年4月25日閲覧。 ^ http://snapcraft.io/ ^ John Kingによるbugs.launchpad.net/ubuntu上のUpgrading packaged Ubuntu application unreasonably involves upgrading entire OS Bug #578045 (2010-05-10) ^ Linus Torvalds on the problems of distro packaging DebConf 2014におけるリーナス・トーバルズ ^ “Canonical unveils 6th LTS release of Ubuntu with 16.04”. Ubuntu Insights. カノニカル. 22 April 2016閲覧。 ^ Willis, Nathan (28 January 2015). “Ubuntu Core and Snappy”. Linux Weekly News（英語版）. https://lwn.net/Articles/630660/ 7 November 2015閲覧。  ^ http://www.ubuntu.com/cloud/snappy ^ http://www.zdnet.com/article/ubuntu-snap-takes-charge-of-linux-desktop-and-iot-software-distribution/ ^ Brodkin, Jon. “Adios apt and yum? Ubuntu’s snap apps are coming to distros everywhere”. Ars Technica. https://arstechnica.com/information-technology/2016/06/goodbye-apt-and-yum-ubuntus-snap-apps-are-coming-to-distros-everywhere/ 13 August 2016閲覧。  ^ Vaughan-Nichols, Stephen J. (11 May 2015). “Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft”. ZDNet. http://www.zdnet.com/article/ubuntu-jumps-into-internet-of-things-with-acer-ge-and-microsoft/ 7 November 2015閲覧。  ^ “Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series”. Ubuntu Insights. カノニカル. 7 November 2015閲覧。 ^ http://manpages.ubuntu.com/manpages/trusty/man1/click.1.html ^ http://askubuntu.com/a/635560/299013 ^ “Snap support for Peek screen recorder discontinued”. Reddit (March 25, 2018). May 12, 2018閲覧。 ^ “Peek Gif Screen Recorder Drops Support for Snap App”. OMG! Ubuntu!. 2018年4月5日閲覧。 ^ “Monthly News – June 2019 – The Linux Mint Blog”. blog.linuxmint.com. 2021年8月12日閲覧。 ^ “Monthly News – May 2020 – The Linux Mint Blog”. blog.linuxmint.com. 2021年8月12日閲覧。 ^ “Installing snap on Linux Mint | Snapcraft documentation” (英語). Snapcraft. 2021年8月12日閲覧。 ^ “Monthly News – October 2020 – The Linux Mint Blog”. blog.linuxmint.com. 2021年8月12日閲覧。 公式ウェブサイト