| スナップ | |
|---|---|
| 開発者 | キャノニカル株式会社 |
| 執筆 | Go、C、シェルスクリプト、Python、JavaScript、NASL [ 1 ] |
| オペレーティング·システム | Linux |
| ライセンス | GNU GPLv3 (クライアントおよびランタイム)、プロプライエタリ(バックエンド) [ 2 ] |
| Webサイト | snapcraft.io |
Snap は、 CanonicalがLinuxカーネルとsystemd initシステムを使用するオペレーティングシステム向けに開発したソフトウェアパッケージングおよびデプロイメントシステムです。snapと呼ばれるパッケージと、それらを使用するためのツールsnapd は、さまざまなLinux ディストリビューションで動作し[ 3 ] 、アップストリームのソフトウェア開発者がアプリケーションをユーザーに直接配布できるようにします。Snap は、ホスト システムへのアクセスが仲介されたサンドボックス内で実行される自己完結型のアプリケーションです。
Snap 内のアプリケーションは、ホスト システムへのアクセスが制限されたコンテナ内で実行されます。インターフェイスを使用すると、ユーザーはアプリケーションに、オーディオの録音、USB デバイスへのアクセス、ビデオの録画など、ホストの追加機能への仲介アクセスを与えることができます。[ 4 ] [ 5 ] [ 6 ]これらのインターフェイスは、通常の Linux API を仲介するため、アプリケーションは書き換えることなくサンドボックス内で機能できます。デスクトップ アプリケーションは、Flatpakプロジェクト (当初は xdg-app と呼ばれていました) によって作成された標準化された API である XDG デスクトップ ポータルを使用して、サンドボックス化されたデスクトップ アプリケーションにホスト リソースへのアクセスを与えることもできます。[ 7 ] [ 8 ]これらのポータルは、アプリケーションが Web カメラなどのリソースを使用するときにユーザーに許可を求めるため、ネイティブ Linux API と比較して、多くの場合、より優れたユーザー エクスペリエンスを提供します。欠点は、これらの新しい API を使用するためにアプリケーションとツール キットを書き換える必要があることです。
Snapサンドボックスは、Snap間でのデータとUnixソケットの共有もサポートしています。 [ 9 ]これは、重複を避けることでSnapのサイズを小さくするために、Snap間で共通のライブラリやアプリケーションフレームワークを共有する場合によく使用されます。[ 10 ] [ 11 ]
Snap サンドボックスは、アップストリームのLinux カーネルのAppArmor Linux セキュリティ モジュールに大きく依存しています。同時にアクティブにできる「主要な」 Linux セキュリティ モジュール(LSM) は 1 つだけであるため、 [ 12 ]別の主要な LSM が有効になっている場合、Snap サンドボックスのセキュリティは大幅に低下します。その結果、デフォルトでSELinux が有効になっているFedoraなどのディストリビューションでは、Snap サンドボックスのセキュリティが大幅に低下します。Canonical は、複数の LSM を同時に実行できるようにするために他の多くの開発者や企業と協力していますが、2020 年時点では、このソリューションはまだかなり先のことでした。[ 13 ] [ 12 ] [ 14 ]
snapd は 1 日に複数回、すべての Snap の利用可能なアップデートを確認し、アトミック操作を使用してバックグラウンドでインストールします。アップデートは元に戻すことができ[ 15 ] [ 16 ]、デルタ エンコーディングを使用してダウンロード サイズを削減します。[ 17 ] [ 18 ] [ 19 ]
パブリッシャーは、チャネルを使用してソフトウェアの複数のバージョンを並行してリリースおよび更新できます。各チャネルには、そのチャネルでリリースされるソフトウェアのバージョンと安定性を示す特定のトラックとリスクがあります。アプリケーションをインストールすると、Snap はデフォルトでチャネルを使用するようになり、新しいメジャー リリースが利用可能になると自動的に更新されます。パブリッシャーは、ユーザーがソフトウェアの特定のメジャー リリースに留まることができるように、追加のチャネルを作成できます。たとえば、チャネルを使用すると、ユーザーはソフトウェアのバージョン 2.0 に留まり、後方互換性のない変更のリスクなしにマイナー アップデートのみを受け取ることができます。パブリッシャーが新しいチャネルで新しいメジャー バージョンをリリースすると、ユーザーは必要に応じて手動で次のバージョンに更新できます。[ 20 ] [ 21 ] [ 22 ] [ 23 ]latest/stable2.0/stable
自動更新のスケジュール、頻度、タイミングはユーザーが設定できます。ユーザーは、自動更新を一定期間、または無期限に一時停止することもできます。[ 24 ] [ 25 ] [ 26 ]従量制接続では更新は自動的に一時停止されます。[ 27 ] [ 28 ]
| スナップクラフト | |
|---|---|
| 開発者 | キャノニカル株式会社 |
| 安定放出 | 9.0.0 [ 29 ] / 2026 年 5 月 7 日 ( 2026 年 5 月 7 日) |
| 執筆 | Python、シェルスクリプト、C++、Go、Dart [ 30 ] |
| オペレーティング·システム | Linux |
| ライセンス | GNU一般公衆利用許諾書、バージョン3.0 |
| Webサイト | snapcraft.io |
| リポジトリ | github.com/snapcore/snapcraft |
Snapcraft は、開発者がプログラムを Snap フォーマットでパッケージ化するためのツールです。[ 31 ] Snap がサポートするすべての Linux ディストリビューション、macOS [ 32 ]、およびMicrosoft Windows [ 33 ]で動作します。Snapcraftは、どのディストリビューションやオペレーティングシステムでビルドしてもビルド結果が同じになるように、Multipass [ 34 ]を使用して仮想マシンでパッケージをビルドします。 [ 35 ] Snapcraft は、 Go、Java、JavaScript、Python、C / C++、Rustなど、複数のビルドツールとプログラミング言語をサポートしています。また、 AppStream、git、シェルスクリプト、ファイルなど、複数のソースからアプリケーションのメタデータをインポートすることもできます。[ 32 ] [ 36 ]setup.py
Snap Store では、開発者が Snap パッケージ化されたアプリケーションを公開できます。[ 37 ] Snap Store にアップロードされたすべてのアプリは、マルウェアスキャンを含む自動テストを受けます。ただし、スキャンですべての問題が見つかるわけではありません。2018 年 5 月のあるケースでは、同じ開発者による 2 つのアプリケーションに、アプリケーションの実行中にバックグラウンドで実行される暗号通貨マイナーが含まれていることが判明しました。2024 年に、ユーザーの資金を盗む偽の暗号通貨ウォレットがアップロードされ、Canonical によって削除されると、新しいアカウントによって簡単に再アップロードされました。[ 38 ] Canonical は、ユーザーが信頼する発行元からの Snap のみをインストールすることを推奨しています。[ 39 ] [ 40 ]
Snapは、さまざまなLinuxディストリビューションで動作する自己完結型のパッケージです。これは、各Linuxディストリビューションごとに特別に適合したパッケージを必要とする従来のLinuxパッケージ管理アプローチとは異なります。[ 41 ] [ 42 ]

snap listことを示しています。snapファイル形式は、拡張子 .snap を使用したSquashFS形式による単一の圧縮ファイルシステムです。このファイルシステムには、アプリケーション、依存するライブラリ、宣言的なメタデータが含まれています。このメタデータは snapd によって解釈され、そのアプリケーションに適した形状のセキュアなサンドボックスが設定されます。インストール後、snap はホストオペレーティングシステムによってマウントされ、ファイルが使用されるときにオンザフライで解凍されます。[ 43 ] [ 23 ]この利点は snap がディスク容量をあまり使用しないことですが、一部の大きなアプリケーションの起動が遅くなることも意味します。[ 44 ] [ 45 ].snap
Snap は、デスクトップ アプリケーション、サーバー ツール、IoT アプリ、プリンタ ドライバ スタックなどのシステム サービスなど、あらゆる種類の Linux アプリケーションをサポートしています。[ 46 ] [ 47 ]これを実現するために、Snap は、 Snap 内でソケット アクティベート システム サービスを実行するなどの機能にsystemdを利用しています。 [ 48 ]このため、Snap は、そのinit システムを採用できるディストリビューションでのみ最適に動作します。[ 49 ]

Snap は当初、Snap のみで構成されたUbuntu Core ディストリビューションのみをサポートしていましたが、2016 年 6 月に、幅広い Linux ディストリビューションに移植され、汎用 Linux パッケージのフォーマットとなりました。[ 50 ] Snap にはSystemdが必要ですが、これはほとんどの Linux ディストリビューションで利用可能ですが、すべてではありません。その他のUnix ライクなシステム ( FreeBSDなど) はサポートされていません。[ 51 ] ChromeOS はSnap を直接サポートしておらず、 Gallium OSなど Snap をサポートする Linux ディストリビューションを介してのみサポートしています。[ 52 ]
Ubuntu とその公式派生ディストリビューションは、 KDE NeonやZorin OSなどの他の Ubuntu ベースのディストリビューションと同様に、デフォルトで Snap をプリインストールしています。[ 53 ] Solusは現在、Snap の厳密な隔離に必要な AppArmor パッチの維持の負担を軽減するために Snap を削除することを計画しています。[ 54 ] Zorin OS は、 Zorin OS 17 リリースで Snap をデフォルト パッケージから削除しました。[ 55 ] Kubuntu、Xubuntu、Ubuntu MATEなどの他の公式 Ubuntu 派生ディストリビューションも補完として競合のFlatpak を同梱していましたが、Ubuntu 23.04 以降は同梱しなくなるため、ユーザーが手動でインストールする必要があります。[ 56 ]
Google [ 57 ] JetBrains [ 58 ] KDE [ 59 ] Microsoft (Linux 版の .NET Core 3.1 [ 60 ] Visual Studio Code、Skype [ 61 ]、PowerShellなど)、Mozilla [ 62 ]、 Spotify [ 63 ]など、多くの著名なデスクトップ ソフトウェア開発会社が Snap Store でソフトウェアを公開しています。Snapは、消費者向け製品[ 64 ]から企業向けデバイス管理ゲートウェイ [ 65 ] や衛星通信ネットワーク [ 66 ] [ 67 ] まで、モノのインターネット( IoT )環境でも使用されています。最後に、Snap はInfluxDB [ 68 ] Kata Containers [ 69 ] Nextcloud [ 70 ]やTravis CI [ 71 ]などのサーバーアプリケーション開発者にも使用されています。
Linux Mintの創設者でありプロジェクトリーダーであるクレメント・ルフェーブルは、Canonical がソフトウェアの配布を管理し、Snap ユーザーにとってストアを必須にしているとして Snap を批判した。2020 年、Linux Mint プロジェクトは、リリースには snap ソフトウェアを同梱せず、 APTを介して snap パッケージを自動的にインストールすることも許可しないと発表した。[ 72 ] [ 73 ]
Ubuntu の最近のバージョンでは、Canonical はChromiumやFirefox [ 74 ]ウェブ ブラウザなどの特定のパッケージを Snap にのみ移行しました。 [ 75 ] [ 37 ] Firefox の置き換えは、特に起動時の Snap バージョンのパフォーマンスの問題により、ユーザーから賛否両論の反応を受けました。[ 74 ]