2019-11-24

Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜

Linux とは本来 Linux カーネルのことを指しています。しかし、カーネルだけでは OS として動作させることはできません。そこで、OS に関連するツールやアプリケーションなどをまとめて、インストールし易く、インストール後にすぐ利用できるような配布形態にしたものを「ディストリビューション(略してディストロ)」と呼んでいます。

本シリーズ記事は、Linux ディストリビューションをピックアップ、仮想マシン(あるいは実機)にインストールして紹介します[不定期]。

Fedora Silverblue とは

Fedora Silverblue はデスクトップ用途の immutable な OS で、以前は Fedora Atomic Workstation [1] と呼ばれていたのですが、Fedora 29 から Silverblue にブランド名が変更されました。OS は、rpm-ostree を活用して生成されたイメージを使用しています。一方、GUI を伴うデスクトップアプリケーションの管理には Flatpak が採用されています。将来、Silverblue が通常の Fedora Workstation に置き換わる可能性がありますが、そうなるのはまだまだ先とのことです [2]

immutable, rpm-ostree, flatpak については後述するとして、仮想環境にインストールしてみました。

仮想環境へのインストール

Silverblue のダウンロードサイト [3] から最新の iso イメージ (Fedora-Silverblue-ostree-x86_64-31-1.9.iso) をダウンロードして、仮想環境 (GNOME Boxes) にインストールしました。

インストールの手順や見た目は、通常の Fedora Workstation と同じです。

インストール後、再起動してアカウントを作成します。

インストールプロセスは、通常の Fedora 31 Workstation とほとんど区別が付きませんでした。インストール後のアプリケーションの一覧を見ると、インターネットブラウザ (Firefox) や端末エミュレータなど最低限のものしかありません。

 デフォルトでインストールされているアプリケーション一覧 

rpm-ostree による OS 管理

OSTree

OSTree は、ファイルシステムツリー(= OS 環境)を管理するツールです。OS 環境をイメージで管理すると捉えることができます。このファイルシステムは起動可能で immutable(変更されない = read only)です。ファイルシステムツリーのイメージは Git のような使い方でバージョン管理をすることができます。そのため(再起動が必要になりますが)OSTree では、複数のファイルシステムツリーを切り替えて利用することができます。

OSTree で扱う OS 環境は書き換えることができませんが、/var 内のみ変更・保存ができます。そのため、例えば従来の /home ディレクトリは /var/home へのシンボリックリンクになっています。

 Silverblue のルートディレクトリ 

rpm-ostree

OSTree が管理するファイルシステムツリー(= OS 環境)は書き換えることができないため、セキュリティ的には非常に堅牢ですが、従来の rpm や deb によるパッケージ単位の管理に比べれば制約が大きく不便になります。そこで、OSTree の機能と、rpm によるパッケージ管理機能を組み合わせたシステムが rpm-ostree です。rpm-ostree で管理するシステムは OSTree による OS のイメージ管理と rpm によるパッケージ管理を併せ持つので、ハイブリッドシステムと呼ばれています。

コマンドラインのヘルプと参考資料 [4] を元にして、rpm-ostree コマンドの概略をまとめました。

rpm-ostree コマンド概略 
rpm-ostree [OPTION…] COMMAND
ビルトインコマンド 説  明
compose OS ツリーを構成するコマンドです。
cleanup キャッシュされている、あるいは処理保留中のデータを消去します。
db RPM のデータベースにクエリを発行するコマンドです。
【用法】
rpm-ostree db [OPTION…] COMMAND
diff 前後のコミットにおけるパッケージの差分(バージョンの違い、追加、削除)を表示します。
list コミットされたパッケージの一覧を表示します。
version コミットされたパッケージの rpmdb バージョンを表示します。
deploy 特定のコミットをデプロイします。
rebase 別の OS ツリーに切り替えます。
rollback 以前ブートした OS ツリーに戻します。
status 起動しているシステムのバージョンを取得します。
upgrade システムのアップグレードを実行します。
reload コンフィギュレーションを再ロードします。
usroverlay 一時的な上書き用ファイルシステム (overlayfs) を /usr に適用します。
cancel アクティブなトランザクション(例えば upgrade)を中止します。
initramfs ローカルでの initramfs 再生成を有効または無効にします。
initramfs は、メモリ上に展開可能な,小さなサイズのルートファイルシステムです。ここにルートファイルシステムをマウントするために必要なカーネルモジュールやスクリプトが保存されています。
install 追加のパッケージを書き込みます。
uninstall 追加して書き込んだパッケージを削除します。
override ベースパッケージのオーバーライドを管理します。
【用法】
rpm-ostree override [OPTION…] COMMAND
replace ベースレイヤーのパッケージを置き換えます。
remove ベースレイヤーからパッケージを削除します。
reset 現在アクティブなパッケージのオーバーライドをリセットします。
reset 全ての変異 (muation) を削除します。
refresh-md rpm リポジトリのメタデータを生成します。
kargs カーネルに渡す引数のクエリまたは編集をします。

rpm-ostree の使用例

Silverblue のインストール後、端末エミュレータ上で rpm-ostree status とタイプして起動しているイメージの情報を表示しました。

rpm-ostree status の使用例 
[bitwalk@localhost ~]$ rpm-ostree status
State: busy
AutomaticUpdates: disabled
Transaction: upgrade (download only)
  Initiator: client(id:gnome-software dbus:1.278 unit:gnome-session-manager@gnome.service uid:1000)
Deployments:
● ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.1.9 (2019-10-23T21:44:48Z)
                    Commit: c4bf7a6339e6be97d0ca48a117a1a35c9c5e3256ae2db9e706b0147c5845fac4
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

さらに rpm-ostree upgrade とタイプして OS 環境のアップグレードを実施しました。アップグレード後は systemctl reboot で再起動します。どちらも sudo を使わずに実行できました。

rpm-ostree upgrade の使用例 
[bitwalk@localhost ~]$ rpm-ostree upgrade
1 metadata, 0 content objects fetched; 569 B transferred in 2 seconds
Staging deployment... done
Upgraded:
  NetworkManager 1:1.20.4-1.fc31 -> 1:1.20.6-1.fc31
  NetworkManager-adsl 1:1.20.4-1.fc31 -> 1:1.20.6-1.fc31
  ...
(途中省略)
  ...
  perl-threads-shared 1.60-443.module_f31+5982+3dad29a3 -> 1.60-440.fc31
  python3-setools 4.2.2-1.module_f31+4996+814a25d3 -> 4.2.2-1.fc31
Removed:
  libdnet-1.12-31.fc31.x86_64
  tpm2-abrmd-2.2.0-2.fc31.x86_64
  tpm2-abrmd-selinux-2.1.0-3.fc31.noarch
  tpm2-tools-3.2.0-3.fc31.x86_64
Added:
  perl-Digest-1.17-439.fc31.noarch
  perl-Digest-MD5-2.55-439.fc31.x86_64
  ...
(途中省略)
  ...
  perl-URI-1.76-5.fc31.noarch
  perl-libnet-3.11-440.fc31.noarch
Run "systemctl reboot" to start a reboot
[bitwalk@localhost ~]$ systemctl reboot 

再起動後、再び rpm-ostree status とタイプして起動しているイメージの情報を確認すると二種類のイメージが存在していることがわかります。

rpm-ostree status の使用例 (2) 
[bitwalk@localhost ~]$ rpm-ostree status
State: idle
AutomaticUpdates: disabled
Deployments:
● ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                    Commit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

  ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.1.9 (2019-10-23T21:44:48Z)
                    Commit: c4bf7a6339e6be97d0ca48a117a1a35c9c5e3256ae2db9e706b0147c5845fac4
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
[bitwalk@localhost ~]$ 

OS イメージのロールバック

rpm-ostree rollback とタイプして、ロールバックしてみました。

rpm-ostree rollback の使用例 
[bitwalk@localhost ~]$ rpm-ostree rollback
Moving 'c4bf7a6339e6be97d0ca48a117a1a35c9c5e3256ae2db9e706b0147c5845fac4.0' to be first deployment
Transaction complete; bootconfig swap: yes; deployment count change: 0
  c-ares 1.15.0-4.fc31 -> 1.15.0-4.module_f31+5271+b9c46c4d
  perl-Carp 1.50-439.fc31 -> 1.50-443.module_f31+5982+3dad29a3
  ...
(途中省略)
  ...
  perl-threads-shared 1.60-440.fc31 -> 1.60-443.module_f31+5982+3dad29a3
  python3-setools 4.2.2-1.fc31 -> 4.2.2-1.module_f31+4996+814a25d3
Downgraded:
  NetworkManager 1:1.20.6-1.fc31 -> 1:1.20.4-1.fc31
  NetworkManager-adsl 1:1.20.6-1.fc31 -> 1:1.20.4-1.fc31
  ...
(途中省略)
  ...
  zlib 1.2.11-20.fc31 -> 1.2.11-19.fc31
  zlib-devel 1.2.11-20.fc31 -> 1.2.11-19.fc31
Removed:
  perl-Digest-1.17-439.fc31.noarch
  perl-Digest-MD5-2.55-439.fc31.x86_64
  ...
(途中省略)
  ...
  perl-URI-1.76-5.fc31.noarch
  perl-libnet-3.11-440.fc31.noarch
Added:
  libdnet-1.12-31.fc31.x86_64
  tpm2-abrmd-2.2.0-2.fc31.x86_64
  tpm2-abrmd-selinux-2.1.0-3.fc31.noarch
  tpm2-tools-3.2.0-3.fc31.x86_64
Run "systemctl reboot" to start a reboot
[bitwalk@localhost ~]$ systemctl reboot

再起動後、再々度 rpm-ostree status とタイプして起動しているイメージの情報を確認すると最初のイメージが有効になっていることを確認できます。

rpm-ostree status の使用例 (3) 
[bitwalk@localhost ~]$ rpm-ostree status
State: busy
AutomaticUpdates: disabled
Transaction: upgrade (check only)
  Initiator: client(id:gnome-software dbus:1.232 unit:gnome-session-manager@gnome.service uid:1000)
Deployments:
● ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.1.9 (2019-10-23T21:44:48Z)
                    Commit: c4bf7a6339e6be97d0ca48a117a1a35c9c5e3256ae2db9e706b0147c5845fac4
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

  ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                    Commit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
[bitwalk@localhost ~]$ 

再度 rpm-ostree upgrade とタイプしてアップグレード後、systemctl reboot で再起動しました。

dnf のインストール

rpm のクエリコマンドが使えるかどうか試したところ、ちゃんと使えました。なお、dnf はインストールされていませんでした。

rpm コマンドでパッケージ確認 
[bitwalk@localhost ~]$ rpm -qa
NetworkManager-openconnect-1.2.6-2.fc31.x86_64
libglvnd-gles-1.1.1-5.fc31.x86_64
gnome-shell-extension-background-logo-3.34.0-1.fc31.noarch
  ...
(途中省略)
  ...
at-spi2-core-2.34.0-1.fc31.x86_64
mesa-libglapi-19.2.4-1.fc31.x86_64
[bitwalk@localhost ~]$ 

そこで、rpm-ostree install で dnf をインストールしてみました。dnf のインストールはできましたが、またまた systemctl reboot で再起動です。

rpm-ostree install の使用例 
[bitwalk@localhost ~]$ rpm-ostree install dnf
Checking out tree 2c0cb65... done
Enabled rpm-md repositories: updates fedora
rpm-md repo 'updates' (cached); generated: 2019-11-23T00:45:22Z
rpm-md repo 'fedora' (cached); generated: 2019-10-23T22:52:47Z
Importing rpm-md... done
Resolving dependencies... done
Will download: 18 packages (4.4 MB)
Downloading from 'updates'... done
Downloading from 'fedora'... done
Importing packages... done
Checking out packages... done
Running pre scripts... done
Running post scripts... done
Running posttrans scripts... done
Writing rpmdb... done
Writing OSTree commit... done
Staging deployment... done
Added:
  deltarpm-3.6.2-2.fc31.x86_64
  dnf-4.2.15-2.fc31.noarch
  dnf-data-4.2.15-2.fc31.noarch
  ...
(途中省略)
  ...
  unbound-libs-1.9.4-1.fc31.x86_64
Run "systemctl reboot" to start a reboot
[bitwalk@localhost ~]$ 

再起動後、毎度になりますが rpm-ostree status とタイプして起動しているイメージの情報を確認すると、LayeredPackages: dnf と、追加したパッケージの情報が別に記載されています。

rpm-ostree status の使用例 (4) 
[bitwalk@localhost ~]$ rpm-ostree status
State: busy
AutomaticUpdates: disabled
Transaction: upgrade (download only)
  Initiator: client(id:gnome-software dbus:1.231 unit:gnome-session-manager@gnome.service uid:1000)
Deployments:
● ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                BaseCommit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
           LayeredPackages: dnf

  ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                    Commit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
[bitwalk@localhost ~]$ 

dnf および rpm コマンドでインストールできない

rpm-ostree で dnf をインストールできましたので、R の開発環境 RStudio をインストールしようと、サイトから rpm パッケージをダウンロードして、まず dnf コマンドでインストールしてみましたが、/(ルート)の領域不足というエラーでインストールできませんでした。念の為、rpm でもインストールしましたが、今度はロックファイルが作成できないという理由でインストールできませんでした。

※ R の環境は、あらかじめ rpm-ostree install R-core-devel を実行してインストールしておきました。

dnf および rpm によるローカル rpm パッケージのインストール(失敗例) 
[bitwalk@localhost ダウンロード]$ ls
rstudio-1.2.5019-x86_64.rpm
[bitwalk@localhost ダウンロード]$ sudo dnf install rstudio-1.2.5019-x86_64.rpm
[sudo] bitwalk のパスワード:
Fedora 31 - x86_64 - Updates                     13 kB/s | 6.5 kB     00:00    
メタデータの期限切れの最終確認: 0:00:01 時間前の 2019年11月24日 00時31分06秒 に実施しました。
依存関係が解決しました。
================================================================================
 Package         Architecture   Version              Repository            Size
================================================================================
インストール:
 rstudio         x86_64         1.2.5019-1           @commandline         115 M

トランザクションの概要
================================================================================
インストール  1 パッケージ

合計サイズ: 115 M
インストール済みのサイズ: 583 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
エラー: Transaction test error:
  パッケージ rstudio-1.2.5019-1.x86_64 のインストールには 618MB の領域が / ファイルシステム上に必要です。

[bitwalk@localhost ダウンロード]$ sudo rpm -ivh rstudio-1.2.5019-x86_64.rpm
警告: rstudio-1.2.5019-x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID e331692f: NOKEY
エラー: トランザクション ロックを(/var/lib/rpm/.rpm.lock 上に)作成できません。(Read-only file system)
[bitwalk@localhost ダウンロード]$

rpm-ostree install でローカルの rpm ファイルをインストール

結局、RStudio の rpm パッケージは rpm-ostree install コマンドでインストールしました。

rpm-ostree によるローカル rpm パッケージのインストール例 
[bitwalk@localhost ダウンロード]$ rpm-ostree install rstudio-1.2.5019-x86_64.rpm
Checking out tree 2c0cb65... done
Enabled rpm-md repositories: updates fedora
Updating metadata for 'updates'... done
rpm-md repo 'updates'; generated: 2019-11-23T00:45:22Z
Updating metadata for 'fedora'... done
rpm-md repo 'fedora'; generated: 2019-10-23T22:52:47Z
Importing rpm-md... done
Resolving dependencies... done
Checking out packages... done
Running pre scripts... done
Running post scripts... done
Running posttrans scripts... done
Writing rpmdb... done
Writing OSTree commit... done
Staging deployment... done
Added:
  rstudio-1.2.5019-1.x86_64
Run "systemctl reboot" to start a reboot
[bitwalk@localhost ダウンロード]$ 

再起動後、rpm-ostree status とタイプして起動しているイメージの情報を確認すると、LocalPackages: rstudio-1.2.5019-1.x86_64 と、ローカルで追加した rpm パッケージの情報が別に記載されています。

rpm-ostree status の使用例 (5) 
[bitwalk@localhost ~]$ rpm-ostree status
State: idle
AutomaticUpdates: disabled
Deployments:
● ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                BaseCommit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
           LayeredPackages: R-core-devel dnf
             LocalPackages: rstudio-1.2.5019-1.x86_64

  ostree://fedora:fedora/31/x86_64/silverblue
                   Version: 31.20191123.0 (2019-11-23T00:39:51Z)
                BaseCommit: 2c0cb651d74ad99eaaeff4929dbeb707bb8fc66d5f655e1bb777b9762037cdab
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4
           LayeredPackages: R-core-devel dnf
[bitwalk@localhost ~]$ 

RStudio をインストールした後、アプリがアプリケーション・ビューに登録され、問題なく起動できることを確認しました。

 RStudio のインストール後のアプリ登録と実行例 

Flatpak によるデスクトップアプリケーション管理

Flatpak とは、Linux デスクトップ向けのソフトウェアデプロイメント・パッケージ管理・アプリケーション仮想化(アプリケーション・コンテナ)を行うユーティリティソフトウェアです。ユーザーがアプリケーションとシステムを分離して実行することができるサンドボックスを提供しています。

前述した通り rpm-ostree でも rpm のパッケージ管理はできますが、インストールなどで OS 環境に変更を加える度に再起動が必要となり、いささか不便です。Silverblue では、Flackpak のリポジトリからデスクトップアプリケーション(GUI アプリケーション)をインストールする仕組みが用意されています。

Silverblue をインストール後、デフォルトで利用可能な Flatpak リポジトリは Fedora のものだけですが、あまりアプリケーションが登録されていません。Flathub [5] のリポジトリを登録することで、主要なオープンソースのディスクトップアプリケーションを利用できるようになります。

※ さらにアプリケーション開発者は、 https://github.com/flathub/flathub/wiki/App-Submission にサブミットしてアプリを配布することができます。

コマンド例 説  明
$ flatpak remotes
現在、システムに登録されているリモートリポジトリ (remote) の一覧を表示します。
$ flatpak remotes
Name    Options
fedora  system,oci
flathub system
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
リモートリポジトリ (remote) flathub を追加します。
追加後、ソフトウェアリポジトリが追加されるので、「ソフトウェア」上にも反映されます。
$ flatpak remote-delete flathub
リモートリポジトリ (remote) flathub を削除します。
$ flatpak search gimp
リモートリポジトリ (remote) で、gimp にマッチするアプリケーションを検索します。
$ flatpak search gimp
Name                                               Description                                                      Application ID                         Version             Branch             Remotes
GIMP (GNU Image Manipulation Program)              画像の作成と写真の編集を行います                                                 org.gimp.GIMP                          2.10.14             stable             fedora,flathub
Glimpse                                            画像の作成と写真の編集を行います                                                 org.glimpse_editor.Glimpse             0.1.0               stable             flathub
Scans to PDF                                       Create small, searchable PDFs from scanned documents             com.github.unrud.djpdf                 0.1.0               stable             flathub
$ flatpak install flathub org.gimp.GIMP
$ flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref
$ flatpak install gimp
リモートリポジトリ (remote) flathub から、ID が org.gimp.GIMP のアプリケーションをインストールします。
$ flatpak install gimp
Looking for matches…
Remotes found with refs similar to ‘gimp’:

   1) ‘fedora’ (system)
   2) ‘flathub’ (system)

Which do you want to use (0 to abort)? [0-2]: 2
Found ref ‘app/org.gimp.GIMP/x86_64/stable’ in remote ‘flathub’ (system).
Use this ref? [Y/n]: y
Required runtime for org.gimp.GIMP/x86_64/stable (runtime/org.gnome.Platform/x86_64/3.32) found in remote flathub
Do you want to install it? [Y/n]: y

org.gimp.GIMP permissions:
    ipc                   network        x11       file access [1]
    dbus access [2]       tags [3]

    [1] /tmp, host, xdg-config/GIMP, xdg-config/gtk-3.0
    [2] org.freedesktop.FileManager1, org.gtk.vfs, org.gtk.vfs.*
    [3] stable
        ID                                           Arch          Branch        Remote         Download
 1. [✓] org.gnome.Platform                           x86_64        3.32          flathub        360.0 MB / 374.0 MB
 2. [✓] org.gnome.Platform.Locale                    x86_64        3.32          flathub          1.8 MB / 320.0 MB
 3. [✓] org.freedesktop.Platform.html5-codecs        x86_64        18.08         flathub          3.2 MB / 3.3 MB
 4. [✓] org.gimp.GIMP                                x86_64        stable        flathub        106.5 MB / 108.9 MB

Installation complete.
$ flatpak run org.gimp.GIMP
アプリケーション ID を run コマンドで実行します。
ただし 多くの場合はアイコンをクリックしてアプリケーションを起動できます。
$ flatpak update
インストールされているアプリケーションとランタイムを最新のものに更新します。
$ flatpak list
$ flatpak list --app
インストールされているアプリケーションとランタイムの一覧を表示します。
アプリケーションの一覧のみを表示したい場合は、--app を付加します。
$ flatpak list
Name                   Application ID              Version Branch Installation
html5-codecs           …ktop.Platform.html5-codecs         18.08  system
GIMP (GNU Image Manip… org.gimp.GIMP               2.10.14 stable system
GNOME Application Pla… org.gnome.Platform                  3.32   system
$ flatpak list --app
Name                                Application ID Version Branch Installation
GIMP (GNU Image Manipulation Progr… org.gimp.GIMP  2.10.14 stable system
$ flatpak uninstall org.gimp.GIMP
$ flatpak uninstall --unused
インストールされている ID が org.gimp.GIMP(アプリケーション)をアンインストール(削除)します。
また、ID の代わりに --unused を付加すると、使用されていないランタイムを削除します。
$ flatpak repair
インストールされているパッケージの矛盾を解決します。
$ flatpak permission-reset org.gimp.GIMP
インストールされている ID が org.gimp.GIMP(アプリケーション)のパーミッションをリセットします。
$ flatpak history
Flatpak によるインストール履歴を表示します。
$ flatpak history
Time            Change         Application                           Branch Installation                                                                           Remote
11月 24 09:52:42 add remote                                                  system                                                                                 flathub
11月 24 10:04:07 pull           org.gnome.Platform                    3.32   /var/tmp/flatpak-cache-G91WB0/org.gnome.Platform-E84WB0/repo-fm0dQv                    flathub
11月 24 10:04:41 pull local     org.gnome.Platform                    3.32   system                                                                                 /var/lib/flatpak/repo/tmp/flatpak-cache-JJ1TB0/repo-fm0dQv
  ...
(途中省略)
  ...
11月 24 10:06:06 deploy install org.gimp.GIMP                         stable system                                                                                 flathub

Fedora Toolbox

Fedora Toolbox は開発者のためにユーザーアカウント単位でコンテナ環境を提供するコマンドラインツールです。toolbox enter コマンドでコンテナ環境に入り、ユーザーアカウントのディレクトリにアクセスできます。また、dnf コマンドがここでは利用できます。

Silverblue ではデフォルトで Toolbox がインストールされていたので、Silverblue 固有なツールと思っていましたが、通常の Fedora 31 Workstation でも利用できます。

コマンド例 説  明
toolbox create [--container <name>]
  toolbox 用のコンテナを作成します。デフォルトで Fedora のイメージが OCI 標準に準拠した形式でダウンロードされます。
$ toolbox create
Image required to create toolbox container.
Download registry.fedoraproject.org/f31/fedora-toolbox:31 (500MB)? [y/N]: y
Created container: fedora-toolbox-31
Enter with: toolbox enter
toolbox enter [--container <name>]
  toolbox のコンテナに入って、インタラクティブに設定などをします。
[bitwalk@localhost ~]$ toolbox enter

Welcome to the Toolbox; a container where you can install and run
all your tools.

 - Use DNF in the usual manner to install command line tools.
 - To create a new tools container, run 'toolbox create'.

For more information, see the documentation.

⬢[bitwalk@toolbox ~]$ sudo dnf install htop

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

Fedora Modular 31 - x86_64                      715 kB/s | 5.2 MB     00:07    
Fedora Modular 31 - x86_64 - Updates            1.4 MB/s | 3.1 MB     00:02    
Fedora 31 - x86_64 - Updates                    3.9 MB/s |  12 MB     00:03    
Fedora 31 - x86_64                              6.1 MB/s |  71 MB     00:11    
Last metadata expiration check: 0:00:01 ago on Sun Nov 24 12:08:55 2019.
Dependencies resolved.
================================================================================
 Package        Architecture     Version                 Repository        Size
================================================================================
Installing:
 htop           x86_64           2.2.0-6.fc31            fedora           112 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 112 k
Installed size: 250 k
Is this ok [y/N]: y
Downloading Packages:
htop-2.2.0-6.fc31.x86_64.rpm                    648 kB/s | 112 kB     00:00    
--------------------------------------------------------------------------------
Total                                           142 kB/s | 112 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : htop-2.2.0-6.fc31.x86_64                               1/1 
  Running scriptlet: htop-2.2.0-6.fc31.x86_64                               1/1 
  Verifying        : htop-2.2.0-6.fc31.x86_64                               1/1 

Installed:
  htop-2.2.0-6.fc31.x86_64                                                      

Complete!
⬢[bitwalk@toolbox ~]$ rpm -qa | grep htop
htop-2.2.0-6.fc31.x86_64
⬢[bitwalk@toolbox ~]$ exit
logout
[bitwalk@localhost ~]$
toolbox list
  ローカルにある toolbox のイメージとコンテナの一覧を表示します。
[bitwalk@localhost ~]$ toolbox list
IMAGE ID      IMAGE NAME                                        CREATED
a198bc8c3cda  registry.fedoraproject.org/f31/fedora-toolbox:31  2 weeks ago

CONTAINER ID  CONTAINER NAME     CREATED         STATUS             IMAGE NAME
91406a7a66dd  fedora-toolbox-31  23 minutes ago  Up 14 minutes ago  registry.fedoraproject.org/f31/fedora-toolbox:31
[bitwalk@localhost ~]$ 
toolbox rm [--force] <name>
  toolbox のコンテナを削除します。
toolbox rmi [--force] <name>
  toolbox のイメージを削除します。

rpm でパッケージを確認すると、toolbox-0.0.16-1.fc31.noarch となっており、まだ開発が始まったばかりのパッケージです。コンテナ環境を簡単に扱えますが、今のところ機能的にもとてもシンプルです。ユーザーアカウントで開発用のコンテナを簡単に用意できるので、案外利用価値が多いかもしれません。

まとめ

項目 説明
ディストリビューション Fedora Silverblue
プロジェクトサイト https://silverblue.fedoraproject.org/
デスクトップ環境 GNOME
対応プラットフォーム x86_64
パッケージ管理 rpm-ostree + flatpak
(一応、rpm ベース)
日本語入力 Ibus, kkc(デフォルト)
更新頻度
サポート期間
一年に二回という Fedora のバージョン更新頻度に準じています。あるバージョンについて 2 つ先のバージョンがリリースされてから 1ヶ月後にメンテナンスが終了します。主要パッケージの定期的な更新頻度は二週間に一回程度か?
寸評

利便性を犠牲にしても immutable な OS を使うニーズは、セキュリティ面から考えて今後ますます高くなるでしょう。そのため OSTree から派生した rpm-ostree のようなシステムは、それなりに採用分野が広がると思います。

デスクトップアプリケーションを flatpak で管理する限り、デスクトップ用途において、どの Linux を使っても同じ UX(ユーザーエクスペリエンス)を実現することになります。そうなればエンタープライズなデスクトップ用途において、Linux デスクトップがもっと普及するようになるかもしれません。オープンソースの世界は多様性に富んでいますから、まだ flatpak がデファクトスタンダードになるかどうかは未知です。しかし、rpm とか deb というようなパッケージ管理の違いを超えて、アプリケーションの仮想化の時代に突入したといえます。

Siliverblue が現行の Fedora Workstation に置き換わるとすれば、flatpak が今後どこまで普及するかどうかにかかっているように思います。

参考サイト

  1. An Introduction to Fedora Atomic Workstation — Project Atomic
  2. What is Silverblue? - Fedora Magazine [2019-07-12]
  3. Team Silverblue — Download
  4. rpm-ostree command man page | ManKier
  5. Applications—Linux Apps on Flathub
  6. 2019年7月2日 Xからの脱却 ―Fedora,次バージョンでのデスクトップ改善ポイントを提示:Linux Daily Topics|gihyo.jp … 技術評論社 [2019-07-02]
  7. bitWalk's: Fedora Silverblue と Toolbox [2020-11-03]

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

0 件のコメント: