flatpak

flatpak, OSTree, flathubをちょっと紹介します。 Red Hat Tech Night 2019.11 のボツネタです。

flatpak もりわか 令和元年 ですね 2 元年 といえば 3 Linux デスクトップ 元年 4 Red Hat Enterprise Linux 8 ● サーバOSとしては超強い ● 一方デスクトップとしては貧弱 ● 5 ● ソフトウェアなくてつらい ● Fedoraなら山ほどソフトウェアがあるのに…… 事情はわかる ● どんどん新しくしたいのとライフサイクルがあわない ● codecのライセンス等の問題 ● 儲からない…… RHEL8のデモブースを準備する ● ビデオ流そ…… H.264のcodecないやん! なんとかデスクトップアプリいれたい 6 ● 自前ビルド ← GentooかArchへ行こう ● EPELやrpmfusionとか ← わかるけど競合したらやだな ● snapd ← EPELにあるっぽい ● flatpak ← RHEL8に入ってる。これ試そう flatpak ● ● ● 7 OSTreeを基盤としたアプリケーショ ンの配布技術 バイナリやライブラリをまとめて配布 する ディストリビューションを選ばない (はず) OSTree (libostree) ってなに? ● ディレクトリツリーをgit風にバージョン管理する基盤 ● branch/commit/reference/pullなどの概念 ● リポジトリ ● ● ● 複数バージョンをチェックアウト ● ● リポジトリからhardlinkしたりbtrfsならCoWしたり 起動可能なディレクトリツリーを考慮 ● 8 ファイルをチェックサムで識別するcontentl-addressed object store 特定reference(とそのN世代前まで)だけミラーするなど ブートローダ設定のswapによる更新、更新失敗時の巻き戻しなど ostreeのコマンド例 $ ostree --repo=repo init $ mkdir tree $ echo 'heeeeee' > tree/hello.txt $ ostree --repo=repo commit --branch=base tree 13c7e9a6edbf25e3b56443ce88c46b35e6edd7a7a7c9c7685788d47e09e66aca $ echo 'hello' > tree/hello.txt $ echo 'world' > tree/world.txt $ ostree --repo=repo commit --branch=base tree ab66069b57a61d2665bdf52c221627ec16fad6dcabf09dd00034f7350cdd1db3 $ ostree diff --repo=repo base base^ M /hello.txt D /world.txt 9 OSTree応用例 ● OSの更新をatomicにおこなう(成功するか、失敗して古い のに戻る) ● ● アプリケーションの配布につかう ● 10 Atomic Host, CoreOS, Fedora SilverblueでOS更新に利用 flatpak flatpak ● ● ● ● OSTreeを基盤としたアプリケーションの配 布技術 バイナリと、バイナリが依存するライブラリ をまとめて配布 複数バージョンの混在が可能 freedesktop.org, GNOME, KDE(Qt)のランタ イム ● デスクトップ環境と統合 ● ディストリビューションを選ばない(はず) 11 RHEL8のgnome-softwareでAudio & Video 12 RHEL8のデモブースを準備する ● 13 flathub.org→ quick setup →RHELリポジトリ設定 → VLCインストール flatpakをいれると劇的にアレコレ生える 14 つたえたかったこと ● デスクトップ用途でRHELはしんどい ● flatpakつかうといろいろ生える ● 背景の技術もおもしろいよ ● 15 実はOSTreeだけじゃなくてOCIも扱えたりするよ Thank You 16