Linuxのパッケージ配布チャネルにFlatpakがあります。各ディストリビューションとは独立にパッケージ間の依存関係を解決するもので、UbuntuのSnapと同様の機能を提供しています。
Flatpakを利用すると、ベースディストリビューションのバージョンと独立に最新のパッケージをインストールできます。
たとえばUbuntuの場合、6ヶ月サイクルのアップグレード、または2年サイクルのLTSから選択することになりますが、個別アプリのリリース間のメジャーバージョンアップはデフォルト管理ツールapt
からは供給されにくい傾向があります。
オープンソース・ソフトウェアは最新版にアクセスできる点がメリットなのですが、ビルド済のパッケージにアクセスできないと利用しにくいという悩みがありました。
セットアップ例
例として、
GIMP v3開発版のインストール例を取り上げます。Ubuntu20.04の場合、flatpak
コマンドはapt
でインストールできます。最新stableではないのですが、この例ではとくに問題はありません。
$ sudo apt install flatpak
つぎに、flatpakのリポジトリとして、
flathubを追加します。
GIMP開発版はベータチャネル経由であるため、stableとbetaの両方を追加します。
$ flatpak remote-add --user flathub https://flathub.org/repo/flathub.flatpakrepo
$ flatpak remote-add --user flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
flatpak install
コマンドでGnome 3.38とGIMP 2.99.2をインストールします。Gnomeはstableチャネル、GIMPはbetaチャネルでした。
$ flatpak install --user --runtime flathub org.gnome.Platform
$ flatpak install --user flathub-beta org.gimp.GIMP
flatpak経由でインストールしたパッケージはflatpak run
コマンドで実行します。Sandbox環境にインストールされるため、apt
で入っている別バージョンのGIMPと干渉することはありません。
$ flatpak run gimp
デスクトップのアプリケーションメニューに登録する際にこのコマンドで登録しておけば、使い方はディストリビューション公式のアプリと特に違いはありません。
まとめ
インストールプロセスは非常に簡潔です。
ただし、依存ランタイムを重複インストールすることになるため、ディスク消費量が増えるトレードオフはあります。
Flatpakガ適しているかどうかは、個別のパッケージにより異なるでしょう。たとえば、emacsはNoXパッケージがないため、emacs -nw
のために前提ランタイムのfreedesktopに800MB割くのは今ひとつ効率的ではありません。
Gnomeのように依存関係が複雑なアプリの場合には、Flatpakは有効なチャネルと言えます。
Chuma Takahiro