はじめに
Linux では、ソフトウェアは、パッケージ、バイナリ実行可能ファイルを含む圧縮ソフトウェア ファイル、構成ファイル、および依存関係を使用して配布されます。パッケージはリポジトリを通じて配布され、ユーザーのシステム上のパッケージ マネージャーを通じて管理されます。
ディストリビューションに依存しないパッケージ形式は、すべての必要な依存関係と共にアプリケーションをバンドルするため、すべての Linux システムで機能します。最も一般的なディストリビューションに依存しないパッケージ形式には、Snap、Flatpak、および AppImage があります。
この記事では、 の違いについて学びます。 Snap、Flatpack、AppImage。
Flatpak と Snap と AppImage の比較
Flatpak、Snap、および AppImage はすべて、すべての Linux ディストリビューションで使用できるパッケージ形式です。ただし、いくつかの重要な違いは、どちらを使用するかを決定するのに役立つ場合があります。
以下は、各パッケージ形式の主な機能と主な違いの一部をカバーする比較表です:
機能 | スナップ | フラットパック | AppImage |
---|---|---|---|
作成者 | 正規 | RedHat、エンドレス コンピューター、コラボラ | ピーター・サイモン |
サンドボックスのサポート | はい | はい | はい |
サンドボックス化必須 | いいえ | はい | いいえ |
root アクセスなしで実行 | インストール後 | インストール後 | はい |
ネイティブ テーマのサポート | はい | はい | はい |
バンドルされたライブラリのサポート | はい | はい | はい |
アプリの完全な移植性 | はい | はい | |
オンライン アプリ ストア | はい | はい | はい |
複数の並列インストールのサポート | はい (チャンネルごとに 1 つ) | あり(無制限) | あり(無制限) |
自動更新 | はい | はい | はい (AppImageUpdate 経由) |
アプリのサイズ | さまざまですが、通常は AppImage より大きくなります | さまざまですが、通常は AppImage より大きくなります | 最小のアプリ サイズ |
利用可能なアプリケーション | 最も | 最低限 | 中量 |
デスクトップ GUI アプリ | はい | はい | はい |
パッケージ システム サービス | はい | いいえ | いいえ |
以下のセクションでは、各パッケージ形式について個別に説明します。
スナップ
Snap は、最初は Canonical によって Ubuntu 用に開発された、ディストリビューションに依存しないパッケージ形式です。その後、他の Linux ディストリビューションでも採用されました。
Snap を作成する主な目的は、多くのデバイスでソフトウェア パッケージの形式を統一することでした。 Snap のサポートには、IoT (モノのインターネット)、Ubuntu Core またはその他の Ubuntu バージョンを実行する組み込みデバイスが含まれます。
注: Ubuntu で Snap パッケージを使用する方法、または Ubuntu に Snap をインストールする方法を学びます。
Snapcraft オンライン ストアでは、オープン ソース パッケージとプロプライエタリ パッケージの両方を入手できます。必要に応じて、コマンド ラインを使用して Snap アプリをインストールします。
次の画像は、Snapcraft ストアのホームページを示しています:
利点
Snap の主な利点は、そのアプリの実行に必要なすべてのライブラリと依存関係が Snap パッケージに含まれていることです。したがって、開発者は異なるシステムで新しいビルドをリリースする際の時間を節約できます。
短所
Snap アプリの主な欠点は、サイズが大きく、Flatpak や AppImage パッケージと比較して起動が遅いことです。さらに、スナップはパッケージに含まれるライブラリのみを使用できます。
注: Snap と apt パッケージ マネージャーの比較をご覧ください。
フラットパック
以前は xdg-app として知られていた Flatpak は、Red Hat、Endless Computers、および Collabora によって 2015 年に開発された別のディストリビューションに依存しないパッケージ形式です。その主な目標は、ルート権限を必要としない安全な仮想サンドボックスでアプリを実行し、セキュリティの脅威を排除することです.サンドボックスには、ソフトウェアの実行に必要なものがすべて含まれています。
Flatpak は、最初に FreeDesktop、KDE、および GNOME 用に開発されました。その後、サポートを Arch Linux、Debian、Fedora、Mageia、Solus、および Ubuntu に拡大しました。 Flatpak は C プログラミング言語に基づいています。
パッケージは、Flathub アプリ ストアまたは CLI 経由でダウンロードできます。当初はオープンソース アプリのみをサポートしていましたが、最近はプロプライエタリ ソフトウェアのサポートを追加しました。
次の画像は、Flathub アプリ ストアを示しています。
利点
他のパッケージ形式に対する Flatpak の利点は、リモートと呼ばれる複数のリポジトリからパッケージをダウンロードできることです。最も人気のあるリモコンは、何千ものアプリを利用できる公式リポジトリである Flathub です。
注: Ubuntu からソフトウェア パッケージを削除するいくつかの方法を参照してください。
短所
Flatpak の主な欠点は、サーバーのサポートがないことと、Snap または AppImage パッケージと比較してパッケージ サイズが大きいことです。起動時間は Snap に比べて高速ですが、AppImage に比べて遅くなります。
AppImage
AppImage は、2004 年に Simon Peter によって作成され、広く使用されているディストリビューションに依存しないパッケージ形式です。もともと、AppImage の前身は klik でした。これは、単一のアプリが機能するために必要なすべてを含むポータブル パッケージ形式でした。
AppImage アプリは移植可能であるため、ユーザーはインストールせずに実行できます。 AppImage の実行に管理者権限は必要ありません。
注: チュートリアルに従い、AppImage を使用して Etcher を Ubuntu にインストールします。
AppImage パッケージは .exe と同様に機能します Windows のファイル。 AppImage アプリケーションを実行するには、アプリケーションを実行可能にし、ファイルをダブルクリックしてパッケージを実行します。
AppImage は、AppImageHub リポジトリを介してパッケージを配布し、AppImage Web サイトに保存します。各パッケージには、AppImageUpdate などのツールを使用してアップデートをインストールする方法に関する情報が付属しています .
次の画像は AppImageHub を示しています リポジトリ:
利点
AppImage パッケージの利点の 1 つは、Snap や Flatpaks に比べて起動が速く、アプリごとに必要なストレージ容量が少ないことです。ダウンロードしたパッケージを削除することで、AppImages をシステムから簡単に削除できます。
短所
AppImage パッケージの欠点は、更新が行われないことです。更新の頻度は低く、すべてのパッケージで利用できるわけではありません。場合によっては、AppImage マネージャーにインストールされている他のパッケージを更新するために、別の AppImage パッケージが必要になることがあります。
Flatpak vs. Snap vs. AppImage - どれを使うべき?
各パッケージ形式は、必要なすべての依存関係とライブラリが付属しているため、どの Linux ディストリビューションでもうまく機能します。ただし、使用するパッケージ形式を決定する際に重要となる考慮すべき要素がいくつかあります。
- アプリ番号 .利用可能なアプリの数が最も重要な要素である場合、Snapcraft オンライン ストアが勝ちます。
- アプリの速度 . AppImage は、アプリの起動、速度、およびパフォーマンスに関して、3 つの中で最も高速です。優れたパフォーマンスを実現するための理想的なソリューションです。
- アプリの統合 .一部のパッケージ形式は、特定のディストリビューションでより適切に統合されます。たとえば、Snaps は Ubuntu、Arch Linux、および CentOS とよりよく統合されますが、Flatpak は Fedora、Linux Mint、または Debian とシームレスに統合されます。 AppImages は Arch Linux、CentOS、Debian、OpenSUSE、Red Hat Linux、Fedora でうまく機能します。
- アプリ コントロール .フラットパックは、AppImage や Snaps と比較して、開発者により多くの制御を提供します。
- 移植性 .移植性に関して言えば、AppImage パッケージは一流です。 Snap は他の Snap アプリに依存する場合があり、Flatpak は別の Flatpak とライブラリを共有できます。 AppImages は、パッケージ自体のリソースのみを使用します。
- アプリの更新 . Snaps と Flatpaks はリポジトリを使用してアプリを自動的に更新しますが、AppImage は AppImageUpdate ツールを使用します。さらに、AppImage は他の 2 つのパッケージ形式ほど多くの更新を取得しません。
- 使いやすさ . Flatpak および AppImage パッケージは、アプリケーションをインストールおよび更新するように設計されています。スナップは同じ目的を持っていますが、その使いやすさはあらゆるものをインストールすることにまで及びます。たとえば、開発者は現在、Linux 印刷スタック全体を単一の Snap に入れることに取り組んでいます。
すべての要因を考慮した後、使用するパッケージ形式を決定する方が簡単です。ただし、ほとんどの Linux ディストリビューションですべての形式が利用できるため、すべてを試して決定するのは簡単です。
結論
この記事では、Snap、AppImage、および Flatpak パッケージの主な違いと、それらの長所と短所を紹介しました。これらは完全にはほど遠いものであり、まだいくつかの改善が必要ですが、同じシステム内で共存でき、他のシステムにはない機能とパッケージを提供できます。
次に、Ubuntu にインストールされているパッケージを一覧表示する方法を確認するか、Ubuntu で壊れたパッケージを修正する方法を学びます。