2023年のLinux向けおすすめユニバーサルパッケージマネージャー3選
Linuxシステムにおけるパッケージ管理やソフトウェアのインストールは、特に初心者(新しいLinuxユーザー)にとって非常に混乱しやすいものです。異なるLinuxディストリビューションが異なる従来のパッケージ管理システムを使用するためです。その中で最も混乱する部分は、パッケージの依存関係の解決/管理です。
例えば、DebianベースのディストリビューションであるUbuntuやLinux Mintは、.debパッケージを利用しており、これはdpkgパッケージ管理システムを通じて管理されます。
一方、RHELベースのディストリビューションであるCentOS Stream、Rocky Linux、およびAlmaLinuxは、.rpmパッケージを使用しており、これはrpmパッケージ管理システムを使用して管理されています。
最近数年間、ユニバーサルまたはクロスディストリビューションのパッケージ管理ツールの登場以降、Linuxエコシステムにおけるパッケージ管理と配布は以前とはまったく異なっています。
これらのツールは、開発者が単一のビルドから複数のLinuxディストリビューション向けにソフトウェアやアプリケーションをパッケージ化することを可能にし、ユーザーが複数のサポートされたディストリビューションに同じパッケージを簡単にインストールできるようにします。
この記事では、Linux用のトップ3のオープンソースのユニバーサルまたはクロスディストリビューションパッケージ管理システムをレビューします。
1. スナップ - ユニバーサルパッケージフォーマット
Snapは、Canonical(Ubuntu Linuxの製造元)が開発した人気のオープンソースアプリケーション/パッケージフォーマットおよびパッケージ管理システムです。現在、Ubuntu、Debian、Fedora、Arch Linux、Manjaro、CentOS/RHELなど、いくつかのLinuxディストリビューションがSnapをサポートしています。
簡単なインストールと更新
スナップアプリケーションは、すべての依存関係をバンドルしたクロスディストリビューションアプリケーションであり、スナップをサポートする任意のLinuxディストリビューションで簡単にインストールでき、自動更新(アプリケーションは常に最新の状態)を行います。スナップはデスクトップ、サーバー、クラウド、またはIoT(モノのインターネット)で実行できます。
Snapcraftを使用してアプリケーションを作成またはスナップを作成します。これは、スナップを構築するためのフレームワークであり、強力なコマンドラインツールです。Linuxでスナップをインストールして使用するには、snapd(またはスナッピー・デーモン)をインストールする必要があります。これは、Linuxシステムが.snapファイルを使用できるようにするバックグラウンドサービスです。スナップの実際のインストールは、snapコマンドラインツールを使用して行われます。
セキュリティと隔離
スナップは隔離された環境(異なるおよび設定可能な隔離レベル)で実行されるため、デフォルトで安全です。重要なのは、隔離の外部にあるシステムリソースにアクセスする必要があるスナップは、スナップの作成者がスナップの要件に基づいて慎重に選択した「インターフェース」を使用することです。これにより、基本のオペレーティングシステムの安定性と柔軟性を損なうことなくアプリケーションを実行できます。
さらに、スナップパッケージ管理システムは、スナップのどのリリースがインストールされ、更新のために追跡されているかを決定するために、チャネル(トラック、リスクレベル、ブランチによって構成および細分化される概念)という概念を使用します。スナップは自動的に更新される機能もあり、そのプロセスは手動で管理できます。
スナップを見つけてインストールするには、スナップストア(開発者がスナップを共有できる場所)で検索するか、ガイドを読んで詳細を確認してください:
2. Flatpak - クロスディストリビューション互換性
Flatpakは、Linuxディストリビューション上でデスクトップアプリケーションを配布するためのよく知られたオープンソースのフレームワークです。独立したコミュニティによって開発されたFlatpakは、単一のアプリケーションビルドをほぼすべてのLinuxディストリビューションにインストールして実行できるようにします。
それは、Fedora、Ubuntu、RHEL、CentOS、OpenSUSE、および Arch Linuxを含む合計25のディストリビューションをサポートしており、Raspberry Piでも動作します。
Flatpakのランタイムは、アプリケーションが活用できる共通ライブラリのプラットフォームを提供します。しかし、これは依存関係を完全に制御することを非常に簡単にしており、アプリケーションの一部としてライブラリをバンドルすることができます。
Flatpak は使いやすいビルドツールを備えており、開発者がアプリケーションを構築およびテストするための一貫した環境(デバイス間で同じであり、ユーザーがすでに持っているものに類似)を提供します。
強化されたセキュリティのためのサンドボックス化
Flatpakは、各アプリをサンドボックス内に置くことで安全性を確保します。このようにすることで、アプリはメインシステムや他のアプリと干渉することができません。信頼できないソースからのアプリを扱うときには非常に便利です。
ユーザーと開発者に優しい
flatpakの便利な点の一つは、同じflatpakが異なるバージョンの同じディストリビューション上で実行できる前方互換性です。これには、まだリリースされていないバージョンも含まれます。また、flatpakは、新しいバージョンのLinuxディストリビューションとの互換性を維持するよう努めています。
開発者であれば、すべてのディストリビューションにアプリケーションを配布するための集中型サービスであるFlathubを介して、Linuxユーザーにアプリケーションを提供することができます。
3. AppImage: ポータブルな代替手段
AppImageは、開発者が1回アプリケーションをパッケージ化し、すべての主要なLinuxデスクトップディストリビューションで実行できるオープンソースのパッケージ形式です。従来のパッケージ形式とは異なり、AppImageではパッケージをインストールする必要はありません。使用したいアプリケーションをダウンロードし、それを実行可能にして実行するだけで、非常に簡単です。ほとんどの32ビットおよび64ビットLinuxデスクトップに対応しています。
インストールは不要です
AppImageを使えば、何もインストールする必要はありません。これらのパッケージをUSBドライブに置いて共有し、システムを変更せずにアプリを実行できます。これはポータブルLinuxやライブシステムにとって素晴らしいです。
広い互換性
AppImageには多くの利点があります。開発者にとって、ユーザーがどのLinuxディストリビューションやバージョンを使用していても、できるだけ多くのユーザーにリーチすることができます。ユーザーにとっては、アプリケーションの依存関係について心配する必要がなく、すべてのAppImageがその依存関係をすべて含んでいるからです(1つのアプリ=1つのファイル)。新しいバージョンのアプリケーションを試すのもAppImageを使えば簡単です。
多数のデスクトップシステムをサポートし、通常、システムを破壊する可能性のあるアプリケーションのインストールをユーザーにブロックしているシステム管理者にとって、もはや心配する必要はありません。AppImageを使えば、ユーザーはアプリをインストールする必要がなく、システムはそのまま維持されます。
トリオの比較:Snap、Flatpak、およびAppImage
こちらは三つのユニバーサルパッケージマネージャーの比較です:
| 機能 | スナップ | Flatpak | アプリイメージ |
| パッケージ形式 | 自己完結型の圧縮ファイル | 自己完結型の圧縮ファイル | 単一の実行可能ファイル |
| サンドボックス | はい(デフォルトで) | いいえ(デフォルトで) | いいえ |
| 自動更新 | はい | オプション | いいえ |
| インストール | snapd デーモンが必要です | Flatpakランタイムが必要です | インストールは不要です |
| ルート権限 | インストールするにはルート権限が必要です | インストールするのにルート権限は必要ありません | 実行するのにroot権限は必要ありません |
どのパッケージマネージャーを選ぶべきですか?
安全で使いやすいパッケージマネージャーを自動更新機能付きで探しているのであれば、Snapは良い選択です。どんなタイプのアプリケーションもパッケージ化できるより柔軟なパッケージマネージャーをお探しであれば、Flatpakが良い選択です。インストールやルート特権を必要としないパッケージマネージャーを探しているのであれば、AppImageが良い選択です。
すべてのパッケージマネージャーはまだ開発中であるため、いくつかのバグや機能の欠落がある可能性があることも重要です。しかし、すべては積極的に保守され、定期的に更新されています。
結論
ユニバーサルまたはクロスディストリビューションパッケージフォーマットは、Linuxエコシステムにおけるソフトウェアの構築と配布のための次世代技術です。しかし、従来のパッケージ管理システムはまだしっかりとした地盤を持っています。
あなたの考えはどうですか? コメントセクションで共有してください。