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 システムを登録してサブスクライブする必要があります。

  1. 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>"
  2. 以下のように 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
  3. ステータスを再度確認し、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
  4. strace パッケージがまだインストールされているように見えることに注意してください。

    # rpm -q strace
    package strace is not installed
  5. いくつかの問題を考慮します。パッケージ自体のレイヤーにインストールされていても、システムにインストールされているようには表示されません。この時点で、rpm-ostree ex livefs を使用して直ちに再起動または適用することにより、保留中のデプロイメントを適用する必要があります。ただし、この決定を行う前に、以下の注記と制限を考慮してください。

    • 変更を再起動または適用せずに、rpm-ostree install を複数回連続して実行すると、最新のコマンドのみが有効になります。wgetstrace を順番にインストールしてから再起動すると、再起動後に 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 は引き続き成功し、システムを以前のデプロイメントに戻します。
  6. 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
  7. 再度、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を参照してください。