Flatpak(旧称:xdg-app)は、Linux デスクトップ向けのソフトウェアデプロイメントおよびパッケージ管理を行うユーティリティソフトウェアです。Flatpak でインストールされたアプリケーションは、実行時にホスト環境から隔離(サンドボックス化)されます。
本記事で使用している OS は Fedora 31 です。
OS | |||
Fedora 31 (Workstation Edition) | x86_64 |
Flatpak
Fedora Silverblue を紹介した記事 [1] で Flatpak に触れましたが、自分がメインのデスクトップ PC にインストールして使っている Fedora Workstation にも、デフォルトで Flatpak がインストールされていることを、後になって気がつきました。💦
[bitwalk@fedora-pc ~]$ flatpak --version
Flatpak 1.4.3
[bitwalk@fedora-pc ~]$
どうやら昨年秋にリリースされた Fedora 29 の頃から Flatpak 導入の動きがあったようです [2] [3]。鈍感にも Flatpak の動きに全然気がつきませんでした。
従来、多くの Linux ディストロでは、個々のパッケージやライブラリを rpm とか deb といった形式のファイルで管理してきました。Flatpak では、特定のアプリケーション(例:GIMP)に対し(サンドボックスで)動作させるために必要なライブラリ(ランタイム)も含めた環境全体を管理します。ただしデスクトップ用、つまり GUI を備えたアプリケーションに限定しているようです。そのデスクトップ・アプリケーションの Flatpak パッケージを集めたリポジトリが flathub です。
CPU アーキテクチャが同じ Linux で Flatpak が利用出来れば、ディストリビューションを越えて同じアプリケーションを利用できることになります。Flathub の https://flatpak.org/setup/ をアクセスすると、下記のように Linux ディストロのアイコンが表示され、アイコンをクリックするとそれぞれ設定方法が記載されているページに移ります(下図)。
ここでは Fedora について、Flathub のリポジトリを利用できるようにします。
Flathub
Fedora のアイコンをクリックして Fedora 用の設定のページに移ります(下図)。
青い Flathub repository file ボタンをクリックすると、「flathub.flatpakrepo を開く」のダイアログが表示され、「ソフトウェア」でインストールするか保存するかを尋ねられます(下図)。
「プログラムで開く」を選択して OK をクリックします。すると下図のようなインストールダイアログが表示されますので、インストール (I) ボタンをクリックしてインストールします。
「ソフトウェア」を再起動して、Flathub のメタデータを取得することを確認します(下図)。
GIMP をインストールしてみる
Flathub からアプリケーションをインストールする例として、GIMP をインストールしてみます。
まず、「探す (E)」タブで、GIMP をキーワードに検索して見つかった GIMP をクリックします。
GIMP をインストールする画面、右上のソースをクリックすると、GIMP のソースが三つあることが判ります。一つ目が、Fedora が用意している Flatpak リポジトリにある GIMP、次が Flathub にある GIMP、そして最期が RPM パッケージの GIMP です。
ここでは Flathub の GIMP を選択して インストール (I) ボタンをクリックしてインストールします。
インストール後、GNOME のアプリケーション一覧に GIMP のアイコンが登録されていることを確認できます。
Flatpak のコマンドで確認
端末エミュレータを起動して、Flatpak の list コマンドでインストールした GIMP を確認します。
[bitwalk@fedora-pc ~]$ flatpak list Name Application ID Version Branch Origin Installation Platform ….fedoraproject.Platform f29 fedora system Intel …op.Platform.VAAPI.Intel 18.08 flathub system html5-codecs …p.Platform.html5-codecs 18.08 flathub system GIMP (GNU Image M… org.gimp.GIMP 2.10.14 stable flathub system GNOME Application… org.gnome.Platform 3.32 flathub system [bitwalk@fedora-pc ~]$
実際にインストールされているのは、GIMP (org.gimp.GIMP) だけでなく、関連するパッケージもインストール(デプロイ)されています。従来の dnf コマンドで rpm パッケージをインストールする場合に、一緒にインストールされる依存関係にあるパッケージの数と比べると、関連するパッケージの数は随分少なくなっています。下記は dnf コマンドで GIMP の rpm パッケージをインストールする場合の例です。
[bitwalk@fedora-pc ~]$ sudo dnf install gimp
[sudo] bitwalk のパスワード:
メタデータの期限切れの最終確認: 0:00:35 時間前の 2019年12月02日 20時32分50秒 に実施しました。
依存関係が解決しました。
================================================================================
Package Arch Version Repository Size
================================================================================
インストール:
gimp x86_64 2:2.10.14-1.module_f31+6993+669d73be
updates-modular 22 M
依存関係のインストール:
gimp-libs x86_64 2:2.10.14-1.module_f31+6993+669d73be
updates-modular 2.3 M
libmypaint x86_64 1.4.0-1.fc31 updates 154 k
pygtk2 x86_64 2.24.0-27.fc31 updates 950 k
python2 x86_64 2.7.17-1.fc31 updates 42 k
python2-libs x86_64 2.7.17-1.fc31 updates 6.0 M
aalib-libs x86_64 1.4.0-0.37.rc5.fc31 fedora 69 k
gdbm x86_64 1:1.18.1-1.fc31 fedora 127 k
gpm-libs x86_64 1.20.7-19.fc31 fedora 20 k
libwmf x86_64 0.2.12-2.fc31 fedora 138 k
libwmf-lite x86_64 0.2.12-2.fc31 fedora 71 k
pygobject2 x86_64 2.28.7-6.fc31 fedora 239 k
python2-cairo x86_64 1.18.1-2.fc31 fedora 93 k
弱い依存関係のインストール:
python2-pip noarch 19.1.1-5.fc31 updates 1.6 M
mypaint-brushes noarch 1.3.0-4.fc31 fedora 2.3 M
python2-setuptools noarch 41.2.0-1.fc31 fedora 578 k
Enabling module streams:
gimp 2.10
トランザクションの概要
================================================================================
インストール 16 パッケージ
ダウンロードサイズの合計: 37 M
インストール済みのサイズ: 166 M
これでよろしいですか? [y/N]:
なお、これらの Flatpak パッケージは /var/lib/flatpak 以下にデプロイされています。
[bitwalk@fedora-pc ~]$ ls /var/lib/flatpak app appstream exports oci repo runtime [bitwalk@fedora-pc ~]$ ls /var/lib/flatpak/app org.gimp.GIMP [bitwalk@fedora-pc ~]$ ls /var/lib/flatpak/runtime org.fedoraproject.Platform org.gnome.Platform org.freedesktop.Platform.VAAPI.Intel org.gnome.Platform.Locale org.freedesktop.Platform.html5-codecs [bitwalk@fedora-pc ~]$
ちなみに、今回インストールした GIMP をコマンドラインから起動するには、flatpak run コマンドで下記のようにします。
[bitwalk@fedora-pc ~]$ flatpak run org.gimp.GIMP
Gtk-Message: 21:24:18.672: Failed to load module "canberra-gtk-module"
Gtk-Message: 21:24:18.673: Failed to load module "pk-gtk-module"
...
...
まとめ
Fedora Workstation で、Flatpak を使ったデスクトップ・アプリケーションのインストール例を簡単にまとめました。
Flatpak について調べてみると、それなりに取り上げているサイトはあるのですが、Flatpak が Linux の次世代パッケージ管理システムの大本命だと論じている記事はありません。似たような仕組みを提供するツールは他に、Ubuntu の開発を支援する Canonical 社が開発したパッケージ管理システム Snappy や、AppImage などがあります[5]。多様性を許容する Linux の世界ですから、おそらくはどれもデファクトスタンダードになることなく共存していくと思われます。
ただ、Red Hat が Fedora の開発プロジェクトに Fedora Silverblue を加えたのは、将来のパッケージ管理技術として rpm-ostree + Flatpak という組み合わせが有望だと考えているからに他なりません。むかしむかし、rpm パッケージの作り方を学んだ時と同じように、今度は Flatpak のパッケージをビルドする方法を勉強します。
参考サイト
- bitWalk's: Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜 [2019-11-24]
- Fedora Flatpak Status
- Fedora 29リリース、モジュラーリポジトリが全エディションで利用可能に | OSDN Magazine [2018-10-31]
- Flatpak—the future of application distribution
- 最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
0 件のコメント:
コメントを投稿