2019-12-02

Fedora で Flatpak を使う

Flatpak(旧称:xdg-app)は、Linux デスクトップ向けのソフトウェアデプロイメントおよびパッケージ管理を行うユーティリティソフトウェアです。Flatpak でインストールされたアプリケーションは、実行時にホスト環境から隔離(サンドボックス化)されます。

Wikipedia より引用・編集

本記事で使用している 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 パッケージをインストールする場合の例です。

dnf コマンドで GIMP をインストールする場合の依存関係のパッケージ数に注目!! 
[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 のパッケージをビルドする方法を勉強します。

参考サイト

  1. bitWalk's: Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜 [2019-11-24]
  2. Fedora Flatpak Status
  3. Fedora 29リリース、モジュラーリポジトリが全エディションで利用可能に | OSDN Magazine [2018-10-31]
  4. Flatpak—the future of application distribution
  5. 最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: