Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
6.2. パッケージの階層化
rpm-ostree install
を使用すると、元の OSTree の一部ではない RPM ソフトウェアパッケージをシステムに永続的に追加できます。rpm-ostree override
を使用すると、ベースシステムレイヤーの既存の RPM パッケージを、そのパッケージの別のバージョンで上書きできます。これらの機能は、パッケージ階層化機能を使用して行われます。
パッケージ層は、同じ OSTree を共有する他のマシンに影響を与えずに、1 台のマシンに特定のパッケージをインストールする必要がある場合に役立ちます。パッケージ階層化のユースケースの例は、strace
などの診断ツールのインストールです。ベースシステムでパッケージを上書きする例は、別のバージョンの docker パッケージを使用する場合です。
6.2.1. RHEL Atomic Host への新規 RPM パッケージのインストール
階層型パッケージとその依存関係を RHEL Atomic Host にインストールするには、以下のコマンドを実行します。
# rpm-ostree install <package>
レイヤー化されたパッケージを削除するには、次のコマンドを使用します。
# rpm-ostree uninstall <package>
rpm-ostree install
または rpm-ostree uninstall
を実行しても、パッケージをすぐにインストールまたはアンインストールすることはできません。実際にパッケージをインストールまたはアンインストールするには、以下の 2 つのオプションがあります。
- システムを再起動します。
LiveFS を使用して直ちに変更を適用します。
注記LiveFS は依然としてテクノロジープレビュー機能であるため、実稼働環境では依存しないでください。
パッケージのみをインストールする場合は、
rpm-ostree ex livefs
コマンドを使用します。パッケージを削除またはアップグレードする場合は、
rpm-ostree ex livefs --replace
コマンドを使用します。
atomic host status
を実行して、システムに手動でインストールされているパッケージを確認することができます。
以下は、RHEL Atomic Host に strace
をインストールする例と、OSTree に含まれることを確認する方法を示しています。yum
でパッケージをインストールするのと同様に、パッケージをインストールする前に Atomic Host システムを登録してサブスクライブする必要があります。
Atomic Host のデプロイメントの現在のステータスを確認します。
-bash-4.2# rpm-ostree status State: idle Deployments: ● rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) Commit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a rhel-atomic-host-ostree:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-13 17:46:26) Commit: c28cad0d4144d91a3c206574e9341cd5bdf7d34cfaa2acb74dd84c0bf022593a GPGSignature: 1 signature Signature made Thu 13 Jul 2017 01:54:13 PM EDT using RSA key ID 199E2F91FD431D51 Good signature from "Red Hat, Inc. <security@redhat.com>"
以下のように strace パッケージをインストールします。
-bash-4.2# rpm-ostree install strace Checking out tree 846fb0e... done ... Importing metadata [===========================================] 100% Resolving dependencies... done Will download: 1 package (470.0 kB) Downloading from rhel-7-server-rpms: [=======================] 100% Importing: [===================================================] 100% Overlaying... done Writing rpmdb... done Writing OSTree commit... done Copying /etc changes: 20 modified, 5 removed, 43 added Transaction complete; bootconfig swap: yes deployment count change: 0 Freed objects: 388.5 MB Added: strace-4.12-4.el7.x86_64 Run "systemctl reboot" to start a reboot
ステータスを再度確認し、strace をインストールして作成されたレイヤー化されたパッケージを表示します。
-bash-4.2# rpm-ostree status State: idle Deployments: rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) BaseCommit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a LayeredPackages: strace ● rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) Commit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a
strace パッケージがまだインストールされているように見えることに注意してください。
# rpm -q strace package strace is not installed
いくつかの問題を考慮します。パッケージ自体のレイヤーにインストールされていても、システムにインストールされているようには表示されません。この時点で、
rpm-ostree ex livefs
を使用して直ちに再起動または適用することにより、保留中のデプロイメントを適用する必要があります。ただし、この決定を行う前に、以下の注記と制限を考慮してください。変更を再起動または適用せずに、
rpm-ostree install
を複数回連続して実行すると、最新のコマンドのみが有効になります。wget
とstrace
を順番にインストールしてから再起動すると、再起動後にstrace
のみが存在します。複数のパッケージを新しいデプロイメントに追加するには、コマンドを使用して、すべてのパッケージを同じ行で指定します。以下に例を示します。# rpm-ostree install wget strace
現在、root 以外のユーザーが所有するファイルを含むパッケージをインストールすることはサポートされていません。たとえば、
httpd
パッケージには、apache
のグループ所有権を持つファイルが含まれ、インストールは失敗します。# rpm-ostree install httpd notice: pkg-add is a preview command and subject to change. Downloading metadata: [====================] 100% Resolving dependencies... done error: Unpacking httpd-2.4.6-40.el7_2.4.x86_64: Non-root ownership currently unsupported: path "/run/httpd" marked as root:apache)
-
rpm-ostree install
の後に、atomic host deploy
またはrpm-ostree deploy
を使用して 7.2.6 よりも古いバージョン OSTree バージョンをデプロイしないでください。rpm-ostree install
の後にそのようなバージョンにデプロイしようとすると、システムは、atomic host upgrade
またはrpm-ostree upgrade
を使用して次のリリースにアップグレードできない状態のままになります。ただし、atomic host rollback
またはrpm-ostree rollback
は引き続き成功し、システムを以前のデプロイメントに戻します。
Reboot または LiveFS: デプロイメントを有効にするために再起動するか、livefs 機能を使用して、以下のようにすぐに有効にします。
# rpm-ostree ex livefs notice: "livefs" is an experimental command and subject to change. Diff Analysis: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a => 97f937f3789d0f25b887bcd4fcc03d33b76ee4c87095af48c602b5826519ce1b Files: modified: 0 removed: 0 added: 11 Packages: modified: 0 removed: 0 added: 1 Preparing new rollback matching currently booted deployment Copying /etc changes: 20 modified, 5 removed, 43 added Transaction complete; bootconfig swap: yes deployment count change: 1 Overlaying /usr... done
再度、strace パッケージがインストールされていることを確認し、新しい LiveCommit を含むデプロイメントのステータスを確認します。
# rpm -q strace strace-4.12-4.el7.x86_64 # rpm-ostree status State: idle Deployments: rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) BaseCommit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a Commit: 97f937f3789d0f25b887bcd4fcc03d33b76ee4c87095af48c602b5826519ce1b LayeredPackages: strace ● rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) BootedCommit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a LiveCommit: 97f937f3789d0f25b887bcd4fcc03d33b76ee4c87095af48c602b5826519ce1b rhelah-7.4:rhel-atomic-host/7/x86_64/standard Version: 7.4.0 (2017-07-28 00:26:01) Commit: 846fb0e18e65bd9a62fc9d952627413c6467c33c2d726449a1d7ad7690bbb93a
この時点で、インストールしたソフトウェアの使用を開始できます。rpm-ostree および Live の更新の詳細は、Project Atomic rpm-ostreeを参照してください。