2020-10-30

【備忘録】Flatpak 版 Google Chrome

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

Wikipedia より引用・編集

Flatpak 版 Google Chrome を試しましたので備忘録としました。

使用した OS は以下の通りです。

Fedora Silverblue 33 x86_64

Flathub

Fedora Silverblue はデスクトップアプリに Flatpak を利用しますが、Fedora の Flatpak リポジトリ registry.fedoraproject.org にはアプリがあまりありません。そこで Flathub という多くの Flatpak アプリが登録されているリポジトリを登録します。参考サイト [1] に主要な Linux ディストロそれぞれでに対してリポジトリの設定方法が紹介されています。Fedora では端末エミュレータ上で下記のようにコマンドを実行します。

[bitwalk@localhost ~]$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Flathub では多くのアプリを利用できるのですが、普段自分が使っているブラウザ Google Chrome が入手できず残念に思っていましたが、探してみると参考サイト [2] (github) に Google Chrome のパッケージがベータ扱いで公開されていました。早速下記のようにリポジトリを登録しました。

[bitwalk@localhost ~]$ flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

再起動して GNOME Software(ソフトウェア)を開いて、Google Chrome を検索してインストールします。Google Chrome を実行すると、以下の画面が最初に表示されます。

Google Chrome を最初に起動したときの画面

Google アカウントの同期で固まってしまいましたが、なんとか使えるようにしました。が、やはり同期の情報が残らないのか、起動のたびに入力をやり直しています。😭

Google Chrome のバージョンは、確認した時点で 86.0.4240.111 になっており、他の PC に rpm などでインストールされている Google Chrome と同じバージョンでした。

まだ不具合がありますが、Flatpak で特に欲しいと思っていたアプリがとりあえず使えるようになりました。

参考サイト

  1. Flatpak—the future of application distribution
  2. Google Chrome on Flathub-beta - General - Flathub Discourse

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

2020-10-29

Btrfs に SD カード追加 ~ Fedora Silverblue 33 ~

Fedora Silverblue 33 を 64GB のストレージを搭載したノート PC にインストールしました。システム領域のファイルシステムは Btrfs です。本ブログ記事では、スロットに挿入した 128GB の SD カードを、ストレージ領域に追加した手順を備忘録としてまとめました。なお、既に本ブログで同じような内容を Fedora 33 Workstation のベータ版で確認しています [1]

Fedora Siliverblue 33 のデスクトップ画面(例)

btrf コマンドで SD カードを追加

Fedora 33 インストール後のストレージの使用状況は以下のようになっています。デバイス /dev/sda1(128GB の SD カード)を、btrfs の /var/home へ追加します。

[bitwalk@localhost ~]$ df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   1.8G     0  1.8G    0% /dev
tmpfs          tmpfs      1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs      749M  9.8M  739M    2% /run
/dev/mmcblk0p3 btrfs       57G  6.4G   50G   12% /sysroot
tmpfs          tmpfs      1.9G   48K  1.9G    1% /tmp
/dev/mmcblk0p3 btrfs       57G  6.4G   50G   12% /var/home
/dev/mmcblk0p2 ext4       976M   90M  819M   10% /boot
/dev/mmcblk0p1 vfat       599M  8.6M  591M    2% /boot/efi
tmpfs          tmpfs      375M   64K  375M    1% /run/user/42
tmpfs          tmpfs      375M  116K  375M    1% /run/user/1000
/dev/sda1      vfat       120G   32K  120G    1% /run/media/bitwalk/3EB6-79B5
[bitwalk@localhost ~]$

btrfs filesystem show コマンドを使用して、現在の btrfs ファイルシステムと、そのファイルシステムに含まれるデバイス一覧を表示します。

[bitwalk@localhost ~]$ sudo btrfs filesystem show
[sudo] bitwalk のパスワード:
[bitwalk@localhost ~]$ sudo btrfs filesystem show
Label: 'fedora_fedora'  uuid: 20f5fc8a-a945-4bd2-986c-401f00459323
        Total devices 1 FS bytes used 6.29GiB
        devid    1 size 56.65GiB used 7.03GiB path /dev/mmcblk0p3

[bitwalk@localhost ~]$

/dev/sda1 をアンマウントして、btrfs device add コマンドでアンマウントした /dev/sda1/var/home へ追加します。

[bitwalk@localhost ~]$ umount /dev/sda1
[bitwalk@localhost ~]$ sudo btrfs device add /dev/sda1 /var/home
/dev/sda1 appears to contain an existing filesystem (vfat).
ERROR: use the -f option to force overwrite of /dev/sda1

すると、すでに vfat のファイルシステムがあるというエラーになるので、-f オプションを付けて上書きします。

[bitwalk@localhost ~]$ sudo btrfs device add -f /dev/sda1 /var/home

ふたたび btrfs filesystem show コマンドで、btrfs ファイルシステムに含まれるデバイス一覧を表示して、/dev/sda1 が追加されていることを確認します。

[bitwalk@localhost ~]$ sudo btrfs filesystem show
Label: 'fedora_fedora'  uuid: 20f5fc8a-a945-4bd2-986c-401f00459323
        Total devices 2 FS bytes used 6.29GiB
        devid    1 size 56.65GiB used 7.03GiB path /dev/mmcblk0p3
        devid    2 size 119.08GiB used 0.00B path /dev/sda1

[bitwalk@localhost ~]$

df コマンドで /var/home の容量(というよりファイルシステム btrfs の容量)が増えていることを確認します。

[bitwalk@localhost ~]$ df -hT
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs       devtmpfs   1.8G     0  1.8G    0% /dev
tmpfs          tmpfs      1.9G     0  1.9G    0% /dev/shm
tmpfs          tmpfs      749M  9.8M  739M    2% /run
/dev/mmcblk0p3 btrfs      176G  6.4G  169G    4% /sysroot
tmpfs          tmpfs      1.9G   48K  1.9G    1% /tmp
/dev/mmcblk0p3 btrfs      176G  6.4G  169G    4% /var/home
/dev/mmcblk0p2 ext4       976M   90M  819M   10% /boot
/dev/mmcblk0p1 vfat       599M  8.6M  591M    2% /boot/efi
tmpfs          tmpfs      375M  116K  375M    1% /run/user/1000
[bitwalk@localhost ~]$

btrfs balance start コマンドで、データが複数のデバイスに分散(バランス)するようにします。この処理には時間が掛かります。

[bitwalk@localhost ~]$ sudo btrfs balance start /var/home
WARNING:

        Full balance without filters requested. This operation is very
        intense and takes potentially very long. It is recommended to
        use the balance filters to narrow down the scope of balance.
        Use 'btrfs balance start --full-balance' option to skip this
        warning. The operation will start in 10 seconds.
        Use Ctrl-C to stop it.
10 9 8 7 6 5 4 3 2 1
Starting balance without any filters.
Done, had to relocate 8 out of 8 chunks
[bitwalk@localhost ~]$

btrfs filesystem show コマンドで、btrfs ファイルシステムに含まれるデバイス一覧を表示して、複数のデバイスでストレージの使用量が変化していることを確認します。。

[bitwalk@localhost ~]$ sudo btrfs filesystem show
[sudo] bitwalk のパスワード:
Label: 'fedora_fedora'  uuid: 20f5fc8a-a945-4bd2-986c-401f00459323
        Total devices 2 FS bytes used 6.29GiB
        devid    1 size 56.65GiB used 0.00B path /dev/mmcblk0p3
        devid    2 size 119.08GiB used 7.03GiB path /dev/sda1

[bitwalk@localhost ~]$

/dev/mmcblk0p3/dev/sda1 の二つのデバイスでバランスを取るというよりは、そっくりデータが SD カード (/dev/sda1) に移ってしまいました。今後使いながら、時々 btrfs filesystem show コマンドで、配分がどうなっているのか確認してみます。

参考サイト

  1. bitWalk's: btrfs ファイルシステムをいじってみた [2020-10-03]

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

2020-10-28

【備忘録】Fedora Silverblue のアップグレード

10月27日(米国時間)に Fedora 33 を公開されたので、Fedora Silverblue を 32 から 33 へアップグレードしました。アップグレードはとても簡単だったのですが、Fedora Silverblue でのアップグレードの経験がありませんでしたので備忘録にしました。

GNOME Software(ソフトウェア)による簡単アップグレード

Fedora 32 Silverblue のパッケージを最新のものに更新すると、「アップグレードが利用可能です」の通知が表示されます。

通知の「アップグレードが利用可能です」をクリックすると GNOME Software(ソフトウェア)が起動し、下記のように ダウンロード(D) ボタンが表示されますので、クリックします。

ダウンロードが終わると インストール(I) ボタンが表示されます。このボタンをクリックすると再起動してダウンロードされた新しい OS イメージが反映されます。

再起動後、ログインしてシステムを確認すると、Fedora 33 にアップグレードされていることを確認できました。

参考サイト [1] を読んで、コマンドを入力してアップグレードすることを想定していましたが、なんとも簡単にアップグレードができてしまいました。

参考サイト

  1. Updates, Upgrades & Rollbacks :: Fedora Docs Site

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

2020-10-27

Fedora 33 リリース

The Fedora Project は 10月27日(米国時間)に Fedora 33 を公開しました [1]。10 月 26 日から 11 月 2 日までの一週間、The Fedora Test Week for Kernel 5.9 [2] と称して、ユーザを巻き込んだ Kernel 5.9 のテストに突入してしまったので、これに合わせて Fedora 33 の正式リリースも遅れるかもしれないと思いましたが杞憂でした。記録を取っていないのであやふやですが、RHEL と異なり、同一リリース内で Kernel のバージョンが上がったことがあったと記憶しています。

Fedora 33 Workstation のデスクトップ画面

Fedora 33 の主要な変更点

今回のリリースで更新または追加、廃止された機能、パッケージは数多くありますが、そのうち、参考サイト [3] から、Fedora 33 Accepted System-Wide Changes(システム全体の変更)の部分を抜き出し、興味のある部分について日本語訳(抄訳やリンク先の詳細説明の訳を含む)も加えました。

  • Aarch64 Pointer Authentication & Branch Target Enablement
  • Binutils 2.34
  • Make btrfs the default file system for desktop variants
    • ラップトップやワークステーションにインストールする Fedora Workstation のデフォルトのファイルシステムに Btrfs が採用されました。これにより、従来の LVM より簡単にストレージを追加して容量不足を解消することができます。
  • Cleanup GNOME Hidden Boot Menu Integration
  • CMake to do out-of-source builds
  • Disable dmraid-activation.service on first run if no dmraid sets are found
  • ELN Buildroot and Compose
  • Boost 1.73 upgrade
  • Changes/MinGW environment and toolchain update
  • FlexiBLAS as BLAS/LAPACK manager
    • BLAS/LAPACK パッケージは FlexiBLAS ラッパーライブラリを用いてコンパイルされ、OpenBLAS をシステム全体のデフォルトのバックエンドとして設定すると同時に、今までの Fedora に欠けていた、適切な切り替え機構を提供します。
  • The GNU C Library version 2.32
  • Golang 1.15
  • Promote IoT to an Edition
    • Fedora IoT が Fedora の正式版 (Official Edition) の一つに昇格しました。
  • java-11-openjdk as system JDK in F33
    • Fedora のシステム JDK が java-1.8.0-openjdk から java-11-openjdk に更新されました。
  • Mark libdb as deprecated
    • libdb の利用を非推奨するこの変更は、将来的に libdb (すべてのサブパッケージを含む) を削除する開発方針をメンテナや開発者に知らせるためのものです。
    • BerkeleyDB 6.xは以前のバージョン (AGPLv3 vs. LGPLv2) に比べてライセンスが厳しく、多くのプロジェクトで使用できないため、将来的には Fedora から libdb を削除する予定です。現在の Fedora は古いバージョン (5.3.28) を使用しており、新しいバージョンにアップデートすることができません。多くのプロジェクトが libdb に依存しているため、完全に削除するためにいくつかのステップを踏みます。最初のステップは、Fedora 33 で libdb を非推奨パッケージとします。次のステップとして、Fedora 35 で既存のデータベースを変換するツールを提供して libdb に依存しないようにします。
  • LLVM 11
  • GNU Make version 4.3
  • NetworkManager keyfile instead of ifcfg-rh
  • Node.js 14.x by default
  • Perl 5.32
  • Python 3.9
  • Remove device-mapper-multipath from the Fedora workstation livecd
  • Removal of the glibc-headers package
  • RPM 4.16
  • Sqlite RpmDB
    • RPM データベースのフォーマットを Berkeley DB から Sqlite へ変更します。
    • 現在の rpm データベースの実装は Berkeley DB 5.x をベースにしています。Berkeley DB 6.x はライセンスの互換性がないので新しいバージョンに移行することはできません。その上、既存の rpmdb の実装はトランザクションではないため、信頼性が低くデータベースの矛盾を検出する手段がありません。
    • より持続可能なデータベースの実装への変更は、長い間の課題でした。今回のリリースでデフォルトの rpmdb フォーマットを sqlite ベースの実装に変更します。現在の BDB フォーマットのサポートは Fedora 33 では維持され、次の Fedora 34 では読み取り専用になります。
  • Strong crypto settings: phase 2
  • swap on zram
    • スワップは便利ですがアクセスが遅いです。 zram は圧縮を利用した RAM ドライブです。起動時に swap-on-zram を作成し、デフォルトでスワップパーティションを使わないようなります。
  • systemd-resolved
  • Use %make_build and %make_install macros
    • RPM の spec ファイルで %make_build と %make_install の両マクロが使用できるようになりました。
  • Make nano the default editor
    • ユーザーは、デフォルトのエディタを呼び出すコマンドを使用すると、デフォルトのエディタが起動します。例えば git commit を実行したときです。
    • Fedora は今までのところところデフォルトのターミナルテキストエディタを定義していませんでした。しかし、ユーザーがターミナルテキストエディタを使用することになるケースは、git commit を使用するときです。いままではデフォルトで、git は vi を起動しました。Fedora 33 では vi の代わりに nano が起動します。
    • Nano もターミナルエディタですが、人々が慣れ親しんだグラフィカルなテキスト編集の使い心地を提供しますので、専門的な知識を必要としません。
  • Zanata Removal
  • Changes/LTO by default for package builds

参考サイト

  1. Fedora 33 is officially here! - Fedora Magazine
  2. Contribute at the Fedora Test Week for Kernel 5.9 - Fedora Magazine
  3. Releases/33/ChangeSet - Fedora Project Wiki

Fedora 33 インストール後の最初の起動時にユーザアカウントを作成する点が素晴らしい、と下記 YouTube では力説しています。確かにプレインストールされた Windows PC であたり前のことが Linux では意外と出来ていませんでした。😮念の為、遡って確認してみたところ、少なくとも Fedora 31 ではインストール後の最初の起動時の初期設定でアカウントを作成するようになっていました。

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

2020-10-25

Linux ディストロ探訪(22) 〜 Fedora IoT 〜

Fedora IoT は文字通り IoT 向けの Fedora エディションです。デスクトップ用途向けの Fedora Silverblue を本ブログで何回か紹介していますが [1]、Fedora IoT はデスクトップ用途の部分を含まない、rpm-ostree とコンテナ (padman) で構成する、とてもシンプルな構成の Fedora と考えればいいでしょう。

本ブログの「Linux ディストロ探訪」では、デスクトップ用途のディストロを中心に紹介してきていますが、デスクトップ用途でない Fedora IoT でも x86_64 の iso イメージが利用できるので、今回は Fedora IoT がどんなものかを試してみました。

アウトライン

インストール

今回使用したイメージは Fedora Internet of Things Edition から Fedora-IoT-IoT-ostree-x86_64-32-20200925.0.iso をダウンロードして、Fedora Media Writer で USB メモリに書き込みました。

必要なリソース

参考サイト [2] によると、インストール用のイメージは 4GB、テストに使用されているメモリは 1GB の RAM です。必要なストレージのサイズはもちろん動作させるコンテナアプリケーションのサイズを考えておく必要があります。

インストーラ

インストーラは他の Fedora エディションと同じ Anaconda が採用されています。Fedora Workstation や RHEL/CentOS のインストール経験があれば、問題なくインストールできると思います。

Fedora インストーラ (Anaconda) の一画面

インストール後の設定

ここからは、実機にインストールしたもので確認します。

パッケージのアップデート

インストール後に、rpm-ostree コマンドでパッケージのアップデートを実行して、新しいパッケージを反映させます。テストに使用した PC は、有線のネットワークにつなげてあります。

[bitwalk@fedoraiot ~]$ sudo rpm-ostree update

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.

[sudo] password for bitwalk:
⠈ Receiving objects: 98% (7314/7407) 4.8 MB/s 267.5 MB
Receiving objects: 98% (7314/7407) 4.8 MB/s 267.5 MB... done
Staging deployment... done
Upgraded:
  NetworkManager 1:1.26.2-1.fc33.1 -> 1:1.26.2-2.fc33
  NetworkManager-libnm 1:1.26.2-1.fc33.1 -> 1:1.26.2-2.fc33
...
(途中省略)
...
  util-linux 2.36-2.fc33 -> 2.36-3.fc33
  vim-minimal 2:8.2.1522-2.fc33 -> 2:8.2.1770-1.fc33
Removed:
  dbxtool-8-13.fc33.x86_64
Run "systemctl reboot" to start a reboot
[bitwalk@fedoraiot ~]$ systemctl reboot

WiFi の接続

参考に、nmcli コマンドを使った WiFi への接続例を示しました。

[bitwalk@fedoraiot ~]$ nmcli dev wifi list
IN-USE  BSSID              SSID                 MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        XX:XX:XX:XX:XX:XX  BCW720J-XXXXX-G      Infra  1     130 Mbit/s  100     ****  WPA1 WPA2
        XX:XX:XX:XX:XX:XX  BCW720J-XXXXX-A      Infra  100   405 Mbit/s  67      ***   WPA1 WPA2
...
...
[bitwalk@fedoraiot ~]$ nmcli dev
DEVICE        TYPE      STATE         CONNECTION
enp0s20u1u1   ethernet  connected     enp0s20u1u1
wlo1          wifi      disconnected  --
p2p-dev-wlo1  wifi-p2p  disconnected  --
lo            loopback  unmanaged     --
[bitwalk@fedoraiot ~]$ sudo nmcli device wifi connect BCW720J-XXXXX-A password XXXXXXXXXXXXX ifname wlo1
[sudo] password for bitwalk:
Device 'wlo1' successfully activated with '4f04ca0a-1caa-4706-9f71-d610148a1467'.
[bitwalk@fedoraiot ~]$ nmcli dev
DEVICE        TYPE      STATE         CONNECTION
enp0s20u1u1   ethernet  connected     enp0s20u1u1
wlo1          wifi      connected     BCW720J-XXXXX-A
p2p-dev-wlo1  wifi-p2p  disconnected  --
lo            loopback  unmanaged     --
[bitwalk@fedoraiot ~]$

ストレージの使用量

テスト機は 32GB の eMMC を搭載していますが、実質の容量 29.1GB のうち、システムが 27GB の領域を利用でき、インストール、アップデート後に約 2GB の領域をシステムが消費しています。IoT デバイスにとって、これが大きいか小さいかは用途によって異なりますが、デスクトップ環境がインストールされていない分、システムのサイズはコンパクトになっています。

[bitwalk@fedoraiot ~]$ df -hT
devtmpfs                            devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                               tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                               tmpfs     767M  9.3M  758M   2% /run
/dev/mapper/fedora--iot_fedora-root ext4       27G  1.9G   24G   8% /sysroot
/dev/mmcblk0p2                      ext4      976M  161M  748M  18% /boot
/dev/mmcblk0p1                      vfat      599M  8.6M  591M   2% /boot/efi
tmpfs                               tmpfs     384M     0  384M   0% /run/user/1000
[bitwalk@fedoraiot ~]$ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0                     179:0    0 29.1G  0 disk
|-mmcblk0p1                 179:1    0  600M  0 part /boot/efi
|-mmcblk0p2                 179:2    0    1G  0 part /boot
`-mmcblk0p3                 179:3    0 27.5G  0 part
  `-fedora--iot_fedora-root 253:0    0 27.5G  0 lvm  /sysroot
mmcblk0boot0                179:8    0    4M  1 disk
mmcblk0boot1                179:16   0    4M  1 disk
[bitwalk@fedoraiot ~]$

Python3 が利用可能

dnf コマンドは使えませんが、rpm コマンドでインストールされているパッケージを確認することができます。インストールされているパッケージのリストを確認すると、Python3 が利用できるようになっています。

[bitwalk@fedoraiot ~]$ rpm -qa | sort
warning: Found bdb Packages database while attempting sqlite backend: using bdb backend.
ModemManager-1.14.2-1.fc33.x86_64
...
(途中省略)
...
publicsuffix-list-dafsa-20190417-4.fc33.noarch
python-pip-wheel-20.2.2-1.fc33.noarch
python-setuptools-wheel-49.1.3-1.fc33.noarch
python3-3.9.0-1.fc33.x86_64
python3-audit-3.0-0.21.20191104git1c2f876.fc33.x86_64
python3-dbus-1.2.16-3.fc33.x86_64
python3-decorator-4.4.2-3.fc33.noarch
python3-firewall-0.8.4-1.fc33.noarch
python3-gobject-base-3.38.0-2.fc33.x86_64
python3-libs-3.9.0-1.fc33.x86_64
python3-libselinux-3.1-2.fc33.x86_64
python3-libsemanage-3.1-2.fc33.x86_64
python3-nftables-0.9.3-6.fc33.x86_64
python3-policycoreutils-3.1-4.fc33.noarch
python3-setools-4.3.0-5.fc33.x86_64
python3-setuptools-49.1.3-1.fc33.noarch
python3-six-1.15.0-2.fc33.noarch
python3-slip-0.6.4-21.fc33.noarch
python3-slip-dbus-0.6.4-21.fc33.noarch
qrencode-libs-4.0.2-6.fc33.x86_64
...
(途中省略)
...
zlib-1.2.11-22.fc33.x86_64
[bitwalk@fedoraiot ~]$

コンテナの利用

コンテナの利用例として、陳腐ですが Apache HTTP Server をデプロイします。

[bitwalk@fedoraiot ~]$ podman search httpd --filter=is-official
INDEX       NAME                      DESCRIPTION                      STARS   OFFICIAL   AUTOMATED
docker.io   docker.io/library/httpd   The Apache HTTP Server Project   3214    [OK]
[bitwalk@fedoraiot ~]$ podman pull docker.io/library/httpd
Trying to pull docker.io/library/httpd...
Getting image source signatures
Copying blob 26694ef5449a done
Copying blob 3ae86ea9f1b9 done
Copying blob 7b85101950dd done
Copying blob bb79b6b2107f done
Copying blob da919f2696f2 done
Copying config 3dd970e6b1 done
Writing manifest to image destination
Storing signatures
3dd970e6b110c8cbcec63e05a91e3cefd23c76a780fcb78c33979153f044b2d4
[bitwalk@fedoraiot ~]$

取ってきた httpd を、8080 番のポートからアクセスできるように実行します。

[bitwalk@fedoraiot ~]$ podman images
REPOSITORY               TAG     IMAGE ID      CREATED     SIZE
docker.io/library/httpd  latest  3dd970e6b110  6 days ago  141 MB
[bitwalk@fedoraiot ~]$ podman run -dt -p 8080:80/tcp docker.io/library/httpd
567ea42182c4607b06fb914b979291e6dc3b73f80d5f6b8e8848d332af2a681b
[bitwalk@fedoraiot ~]$ podman ps
CONTAINER ID  IMAGE                           COMMAND           CREATED        STATUS            PORTS                 NAMES
567ea42182c4  docker.io/library/httpd:latest  httpd-foreground  8 seconds ago  Up 7 seconds ago  0.0.0.0:8080->80/tcp  cool_chebyshev
[bitwalk@fedoraiot ~]$ curl http://localhost:8080
<html><body><h1>It works!</h1></body></html>
[bitwalk@fedoraiot ~]$

rpm-ostree による OS 管理

Fedora IoT のシステムに採用されている rpm-ostree について紹介します。まずは rpm-ostree がベースとしている OSTree から説明します。

OSTree

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

OSTree が管理する OS 環境は、書きかえることができませんが、/var 内は変更・保存ができるようになっています。そのため、変更や削除を必要とする、例えば /home ディレクトリは /var/home へのシンボリックリンクになっています。

rpm-ostree

OSTree が管理する OS 環境は書き換えることができないため、セキュリティ的には非常に堅牢ですが、従来の rpm や deb によるパッケージ単位の管理に比べれば、システム上で個々のパッケージ追加、削除をすることができない点が不便です。そこで、OSTree の機能と rpm によるパッケージ管理機能を組み合わせたシステムが rpm-ostree です。パッケージを追加・削除した結果を反映するには、再起動が必要になります。

rpm-ostree で管理するシステムは OSTree による OS のイメージ管理と rpm によるパッケージ管理を併せ持つので、ハイブリッドシステムと呼ばれています。

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 追加の rpm パッケージを書き込みます。
uninstall 追加して書き込んだ rpm パッケージを削除します。
override ベースパッケージのオーバーライドを管理します。
【用法】
rpm-ostree override [OPTION…] COMMAND
replace ベースレイヤーのパッケージを置き換えます。
remove ベースレイヤーからパッケージを削除します。
reset 現在アクティブなパッケージのオーバーライドをリセットします。
reset 全ての変異 (muation) を削除します。
refresh-md rpm リポジトリのメタデータを生成します。
kargs カーネルに渡す引数のクエリまたは編集をします。

まとめ

項目 説明
ディストリビューション Fedora IoT
プロジェクトサイト https://getfedora.org/ja/iot/
デスクトップ環境 なし
対応プラットフォーム x86_64, aarch64, armhfp
パッケージ管理 rpm-ostree
日本語入力 なし
寸評

IoT 機器向けには Fedora IoT、デスクトップ用途には Fedora Silverblue、そしてサーバー(クラウド環境)向けには Fedora CoreOS という次世代の OS は rpm-ostree による immutable な OS を管理する仕組みを持っています。

そのなかで、Fedora IoT は rpm-ostree と podman によるコンテナ機能を備えた最小構成の OS になります。

IoT, Internet of Things(モノのインターネット)に特化した、という表現はあやふやですが、Fedora IoT の役割は、おそらくですが、センサーなどのデバイスからの情報を扱うような特定用途向けサーバーに利用することを想定しているのでしょう。デスクトップ環境が無いだけで、必要なコンテナをデプロイすれば、データベースやその他のサーバーにもフツーに使えそうです。もちろん、静かに機械学習をさせてデータを整理・加工させるのはもっと面白そうです。🤪

参考サイト

  1. bitWalk's: Linux ディストロ探訪(10) 〜 Fedora Silverblue 〜 [2019-11-24]
  2. Reference Platforms :: Fedora Docs Site

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

2020-10-23

Ubuntu 20.10 (Groovy Gorilla) リリース

2020年10月22日(現地時間⁠)、Ubuntu 20.10 (⁠Groovy Gorilla) がリリースされました。Linux Kernel 5.8 や GNOME 3.38 など、新しいバージョンのソフトウェアになっているということですが、実際に確認したかったので、テスト機にインストールしてみました。

Ubuntu 20/10 のデスクトップ画面

いつものようにインストール後、すぐに日本語入力ができます。さすが安心・安定の Ubuntu です。ん? Ubuntu ってそんなディストロだったのかなぁ?GNOME や LibreOffice のバージョンが新しくなったからって、それは他のディストロでも同じように体験できます。そのほかに Ubuntu ならではのことで新しいことはないのでしょうか。

しばらくこの 20.10 Groovy Gorilla(いかしたゴリラ)をテスト機で使ってみて気がついた点があれば追記します。

追記

Ubiquity が Active Directory の設定に対応

テスト目的でインストールするときには、WiFi やアカウントの設定以外はデフォルトのままでインストールするのであまり気にしていませんでしたが、今回のリリースで、インストーラの UbiquityActive Directory の設定に対応しました。エンタープライズ向けの機能です。OMG! Ubuntu! の記事 [3] で知りました。

[2020-10-24]

参考サイト

  1. Ubuntu 20.10 (Groovy Gorilla) released [2020-10-22]
  2. 2020年10月23日号 Ubuntu 20.10 “Groovy Gorilla”のリリース:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
  3. Ubuntu 20.10: Everything You Need to Know - OMG! Ubuntu! [2020-20-23]

 

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

2020-10-22

【備忘録】Matplotlib で SPC チャート (2)

本ブログで以前、PyGObject で Matplotlib で描画した SPC チャート(管理図)のサンプルを紹介しました [1]。SPC は Statistical Process Control(統計的工程管理)の略で、SPC チャートは処理順に注目特性をプロットした折れ線グラフです。製造工程が管理状態にあるかどうかを判断するためなどに活用されます。詳しい SPC チャートの説明は割愛します。ご興味のある方は、例えば参考サイト [2] などをご覧になってください。

Matplotlib を利用して、PyGObject で SPC チャートがらみのちょっとしたツールを作りました。なかなか出来が良かったので、チームで共有しようと Windows 上で使えるようにパッケージ化を検討しましたが、あえなく挫折。結局、GUI のライブラリを PyGObject から wxPython に変更して GUI の部分を書き直しました。PyInstealler でパッケージ化して動作することを確認してから、チームにデモンストレーションをしました。

幸い、チームのファースト・インプレッションは良好で、さまざまな意見をもらいました。その中で SPC チャートの管理線に関する注文が特に重要だと考え、早速改良に取り掛かりました。横線である管理線のラベルの扱いに改良が必要だったわけなのですが、結局、縦軸の目盛りのラベルをカスタマイズすることが一番扱いやすいと判断し、軸目盛をカスタマイズすることにしました。テスト用のサンプルでベタな書き方をしていますが、備忘録にします。

本ブログ記事では下記の OS 環境で動作確認をしています。

Fedora 33 beta (Workstation Edition) x86_64

横線は自由に描画できるので、あとはラベルを左右どちらかの縦軸に目盛ラベルとして表示することが今回の目的でした。コーディングは、もっと効率的で綺麗な記述ができると思うので、改良を続けることにします。

wx_matplotlib.py の実行例
wx_matplotlib.py

参考サイト

  1. bitWalk's: 【備忘録】Matplotlib で SPC チャート [2020-07-09]
  2. 管理図とは?QC7つ道具との関係、管理図の仕組みや種類を網羅的に解説 | Backlogブログ [2020-02-26]

 

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