snap、appimage、flatpakなどの違いは何ですか?


105

私は最近学生からこの質問を受け取ってきましたが、提供する情報はたくさんありますが、更新の回答を読むことができる場所を人々に示すことができるソースは見つかりませんでした(多くの誤った情報と古い情報を見つけました)。そのため、このような進化したユニバーサルパッケージングシステムで、snap、appimage、flatpakなどのパッケージ形式に関して私が抱えている質問のいくつかは次のとおりです。

  • 誰がパッケージ形式を作成しましたか?
  • どのような機能を提供しますか?
  • それに固有の機能は何ですか?(他の人がまだ持っていないこと)
  • 誰がサポートしていますか?
  • どのディストリビューションがそれを使用していますか?
  • パッケージにはどのような焦点がありますか?(デスクトップ、クラウド、モバイルなど。)
  • どちらがより積極的に開発されていますか?

回答:


68

AppImage対Snap対Flatpak機能の長い表形式比較です。GitHubAppImage Wikiから入手できます

AppImageとSnapとFlatpackの比較


43
このグラフはAppImageの観点から構築されていることを指摘する価値があると思います。つまり、デフォルトの機能セットはAppImageの機能セットであり、他の機能セットはその機能と比較されます。これにより、AppImageに偏ったエッジが与えられます。また、多少古くなっています。たとえば、Snapはこの秋にテーマのサポートを追加しました。
ダン

1
@Dan:Snapの追加サポートについて知っているなら、なぜチャートに編集してみませんか?また、あなたはスナップおよび/またはFlatpakにあるその他の機能について知っている場合:感触がAppImageのwiki内の各項目とチャートを修正するために招待...
クルトPfeifle

11
@Kurtの発言方法がわかりません。例として、「目的」セクションを見てください。AppImageの目的のみを表示します。他のプロジェクトには目的がない場合と同じです。AppImageの目的のみが重要であるかのように。
ダン

5
私はあなたのポイントを取得します-ウィキを編集できます。しかし、あなたの答えは巨大なイメージであり、Wikiが変更されたとしても、おそらく永久にそのままでいるでしょう。将来のAsk Ubuntu読者に対するあなたの答えに照らして、バイアスは言及する価値があると思います。
ダン

2
@Dan:7月4日に回答を編集して、Webサイトからスクリーンショットの更新バージョンを挿入しました(Wikiに発生した変更を正確に含めるため)。元のWikiを編集し、新しいスクリーンショットを作成し、新しいスクリーンショットを使用してこの回答の修正を提案する際の問題はどこにありますか?
カートPfeifle

51

スナップは、CanonicalによってUbuntu用に作成されました。スナップの主な利点は次のとおりです。

  • 依存関係の独立性-すべてのライブラリと依存関係がパッケージに含まれています。これにより、同じプログラムのバージョンを増やすこともできます。
  • サンドボックス-スナップは修正されたAppArmorを使用してアプリケーションをサンドボックス化します
  • デルタ更新-スナップはデルタ更新も許可する必要があります

スナップの主な欠点は、ソフトウェアがパッケージに含まれるライブラリのみを使用できることです。パッケージの作成者はすべてのライブラリにパッチを適用して更新する必要があるため、これは潜在的なセキュリティリスクです。

スナップは現在、Ubuntu、Arch Linux、Fedora、Linux Mint、CentOS、Gentooで実行できます。Ubuntu Touchでも使用されます。これらは、デスクトップ、サーバー、電話、IoT、ルーター向けに設計されています。

Flatpakには、スナップと同じ利点があります。ただし、サンドボックス化にはAppArmourの代わりにネームスペースを使用します。主な違いは、Flatpaksはパッケージに含まれているライブラリと、別のFlatpakの共有ライブラリの両方を使用できることです。

Flatpakの開発者は、Red Hatの従業員であるAlexander Larssonです。Flatpakソフトウェアは現在Arch Linux、Debian、Fedora、Mageia、Solus、Ubuntuで利用可能です。デスクトップのみに焦点を当てています。

AppImagesはSimon Peterによって開発されました。snapsやFlatpakのように、パッケージにはプログラムの実行に必要なすべてのライブラリが含まれています。AppImageプログラムはサンドボックス化されておらず、実行するのにルート権限は必要ありません。プロジェクトのウェブサイトによると、AppImagesはArch Linux、Centos、Debian、Fedora、OpenSUSE、Red Hat Linux、Ubuntuで実行する必要があります。


3
SOLUSが発表したflatpakのサポートを 2017年1月に
Anthonの

8
それらはすべてappimageに基づいているはずです。同じイデオロギーを再発明し、断片化と混乱を導入する代わりに。また、これらのポータブルパッケージにはすべてのライブラリが含まれているため、aptまたは.debを介してインストールされた共有ライブラリを使用するアプリに比べて、サイズがかなり重いことに注意してください。どちらがより人気があるかを知る必要がある場合、flatpakは現在スナップを打ち負かしています。
answerSeeker

現在、Spectre攻撃が広まっているため、セキュリティ上の理由から、共有ライブラリへの関心が減ると思われます。:
クリス

4
@answerSeeker:ポータブルパッケージが「aptまたは.debを介してインストールされた共有ライブラリを使用するアプリと比較してかなり重い」というコメントは、実際の事実によって必ずしも裏付けられているわけではありません。AppImagesとSnapsはSquashFSイメージに圧縮されます(Flatpakには当てはまりません)。実行中であっても、ディスクに抽出されることはありません。AppImagesを実行すると、一時的に作成されたマウントポイントに自己マウントされ、/tmp/.mount_<random-chars>そこから実行されますが、まだ圧縮されています!...下記の私の答えのスクリーンショットにLibreOfficeの例の数値を参照してください
クルトPfeifle

1
@PabloBianchi:(より最近の「タイプ2」の種類の)新しいAppImageには、更新メカニズムが組み込まれている場合があります。これにより、元のAppImageの場所からバイナリデルタdiffがダウンロードされ、新しいバージョンが利用可能になり、ユーザーが希望することを指定した後、ダウンロードサイズと時間が節約されます。ツールappimageupdatetool(CLI)およびAppImageUpdate-Qt(GUI)はこれに役立ちます。
カートファイフル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.