[Fedora Silverbllue] rpm-ostree

Fedora Silverblue はデスクトップ用途の immutable な OS で、システムの部分は、rpm-ostree で生成されたイメージを使用しています。一方、GUI を伴うデスクトップアプリケーションの管理には Flatpak が採用されています。

OSTree

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

OSTree で扱う OS 環境は基本的に書き換えることができませんが、例外があり /var 内のみ変更・保存ができるようになっています。そのため、例えば従来の /home ディレクトリは /var/home へのシンボリックリンクになっていて、あたかも従来と同じように /home 内のアカウントでデータの追加や変更作業ができます。

ostree コマンド概略 
ostree [OPTION…] COMMAND
ビルトインコマンド 説  明
admin ostree で起動したホストシステムを管理するためのコマンド
cat ファイルの内容を連結する
checkout ファイルシステムツリーへのコミットをチェックアウト
checksum ファイルまたはディレクトリのチェックサム
commit 新しいリビジョンをコミットする
config リポジトリの設定変更
diff ディレクトリ TARGETDIR をリビジョン REV と比較します。
export tar 形式で標準出力にコミットをストリーム配信します。
find-remotes 指定された refs にサービスを提供するためのリモートを見つける
create-usb refs をUSBメモリにコピーする
fsck リポジトリの整合性を確認する
gpg-sign コミットに署名する
init 新しい空のリポジトリを初期化する
log コミットまたは ref で始まるログを表示する
ls ファイルパスの一覧
prune 届かないオブジェクトを探す
pull-local ソースリポジトリからデータをコピー
pull リモートリポジトリからデータをダウンロード
refs refs の一覧
remote インターネットへのアクセスを伴う可能性のあるリモートコマンド
reset REF を以前のコミットにリセットする
rev-parse ref のターゲットを出力
show メタデータオブジェクトを出力する
static-delta スタティックデルタ関連コマンド
summary サマリーメタデータの管理

rpm-ostree

OSTree のファイルシステムツリーを丸ごと管理する機能と rpm によるパッケージ管理機能を組み合わせたシステムが rpm-ostree です。rpm-ostree で管理するシステムは OSTree による OS のイメージ管理と rpm によるパッケージ管理の双方の特徴を併せ持つので、ハイブリッドシステムと呼ばれています。

rpm-ostree コマンド概略

コマンドラインのヘルプと参考資料 [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 upgrade の例

[bitwalk@silverblue ~]$ ostree admin status
* fedora c77f0c6d97562c12dd653c3b375c800fe7ab8767a0b95b00ab470f5866365d4a.0
    Version: 31.20200413.0
    origin: 
  fedora c21de1d37c9c9a8d52f03ff95751c15acc764fb3d187771eb4e57e81d6253e82.0 (rollback)
    Version: 31.1.9
    origin: 
[bitwalk@silverblue ~]$
[bitwalk@silverblue ~]$ rpm-ostree upgrade
1 metadata, 0 content objects fetched; 569 B transferred in 3 seconds
Checking out tree 2de2e4e... done
Enabled rpm-md repositories: updates fedora-cisco-openh264 updates-modular fedora rpmfusion-nonfree-steam fedora-modular phracek-PyCharm
Updating metadata for 'updates'... done
rpm-md repo 'updates'; generated: 2020-04-13T16:27:30Z
Updating metadata for 'fedora-cisco-openh264'... done
rpm-md repo 'fedora-cisco-openh264'; generated: 2019-09-17T18:20:34Z
Updating metadata for 'updates-modular'... done
rpm-md repo 'updates-modular'; generated: 2020-04-09T20:25:33Z
Updating metadata for 'fedora'... done
rpm-md repo 'fedora'; generated: 2019-10-23T22:52:47Z
Updating metadata for 'rpmfusion-nonfree-steam'... done
rpm-md repo 'rpmfusion-nonfree-steam'; generated: 2020-02-24T21:32:34Z
Updating metadata for 'fedora-modular'... done
rpm-md repo 'fedora-modular'; generated: 2019-10-23T22:53:13Z
Updating metadata for 'phracek-PyCharm'... done
rpm-md repo 'phracek-PyCharm'; generated: 2020-04-14T10:18: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
Run "systemctl reboot" to start a reboot
[bitwalk@silverblue ~]$ sudo systemctl reboot
[sudo] bitwalk のパスワード:
[bitwalk@silverblue ~]$ ostree admin status
* fedora 46b90d0230166faa5e3ec56f32467774d231139d90adcf59adb50676a5be81f6.0
    Version: 31.20200413.0
    origin: 
  fedora c77f0c6d97562c12dd653c3b375c800fe7ab8767a0b95b00ab470f5866365d4a.0 (rollback)
    Version: 31.20200413.0
    origin: 
[bitwalk@silverblue ~]$

参考サイト

  1. rpm-ostree command man page | ManKier
  2. silverblue-cheatsheet.pdf

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

0 件のコメント: