Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

第 25 章 ゾーンがインストールされている Solaris システムでのパッケージとパッチについて (概要)

Solaris 10 1/06: この章の内容は、全面的に改訂されています。

この章では、ゾーンがインストールされるときに、Solaris オペレーティングシステムを維持する方法について説明します。大域ゾーンおよびインストール済みのすべての非大域ゾーン内で、パッケージやパッチをオペレーティングシステムに追加する際の情報を提供します。パッケージおよびパッチの削除に関する情報も含まれます。この章の内容は、既存の Solaris インストールおよびパッチに関するマニュアルの内容を補うものです。詳細は、Solaris 10 Release and Installation Collection - Japanese および『Solaris のシステム管理 (基本編)』を参照してください。

この章で扱う内容は、次のとおりです。

ゾーンがインストールされているときのパッケージとパッチの操作について追加された説明

Solaris 10 1/06: この章は、非大域ゾーンがインストールされているシステム上でのパッケージコマンドとパッチコマンドの最新の動作を説明するために、Solaris 10 以降に改訂されています。

Solaris 10 6/06: SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータに関する情報が改訂されています。「パッケージツールとパッチツールの概要」および 「パッケージパラメータの情報」を参照してください。

Solaris 10 6/06 以降のリリース: システムを登録する方法または Sun Connection (以前は Sun Update Connection と呼ばれていた) を使用してソフトウェアの更新を管理する方法については、BigAdmin の Sun Connection ハブを参照してください。

Solaris 10 8/07 以降のリリース:

Solaris 10 5/08 以降の更新リリース: PatchPro は終了しました。パッチデータベースとパッチツールを使って、大域ゾーンと非大域ゾーンにインストールされているソフトウェアにパッチを適用してきた PatchPro のサポートが、2007 年 9 月で終了しました。現在のプロセスについては、Sun xVM Ops Center を参照してください。

Solaris 10 5/08: この情報は Solaris 10 5/08 リリースで追加されたものですが、すべての Solaris 10 システムに当てはまります。

使用している Solaris システムを登録するには、https://inventory.sun.com/inventory/ にアクセスしてください。Sun Inventory を使用してハードウェア、ソフトウェア、およびオペレーティングシステムを登録する方法については、Sun Inventory Information Center を参照してください。

Sun xVM Ops Center を使用してデータセンターでシステムをプロビジョニング、更新、および管理する場合は、ソフトウェアを Sun xVM Ops Center に登録する方法を Sun xVM Information Center で参照してください。

Solaris 10 10/09: ゾーンの並列パッチは、標準の Solaris 10 パッチユーティリティーの拡張機能です。Solaris 10 10/09 より前のリリースでは、このパッチは、119254-66 以降のリビジョン (SPARC) および 119255-66 以降のリビジョン (x86) のパッチユーティリティーのパッチで提供されます。『「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』および『「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』を参照してください。「パッチ適用のソリューションとして、接続時更新を使用する」も参照してください。ゾーンを持つシステムでパッチをすばやく更新するには、この方法をお勧めします。

Solaris 10 の新機能の全一覧および Solaris リリースについての説明は、『Oracle Solaris 10 9/10 の新機能』を参照してください。

パッケージツールとパッチツールの概要

Solaris パッケージツールは、ゾーン環境の管理に使用されます。大域管理者は、システムを Solaris の新しいバージョンに更新できます。その際、大域ゾーンと非大域ゾーンの両方が更新されます。

大域ゾーンで Solaris Live Upgrade、Solaris 標準の対話型インストールプログラム、またはカスタム JumpStart インストールプログラムを使用して、非大域ゾーンが含まれているシステムをアップグレードできます。zonepath が ZFS 上に設定されているゾーンには、次の制限が適用されます。

詳細は、『Oracle Solaris ZFS 管理ガイド』「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」を参照してください。

ゾーン管理者は、このマニュアルに記載されている制限の範囲内でパッケージツールを使用して、非大域ゾーンにインストールされたすべてのソフトウェアを管理できます。

ゾーンがインストールされている場合は、次の一般的な指針が適用されます。


注 –

特定のパッケージおよびパッチ操作が行われている間、ゾーンはこの種のほかの操作から一時的にロックされます。システムはまた、要求された操作について管理者に確認してから処理を続行することがあります。


パッケージとゾーンについて

非大域ゾーンのインストール時に、大域ゾーンにインストールされた Solaris パッケージの一部だけが完全に複製されます。たとえば、非大域ゾーン内では、Solaris カーネルを含む多数のパッケージは必要ありません。すべての非大域ゾーンは、大域ゾーンと同一の Solaris カーネルを暗黙的に共有します。ただし、パッケージのデータが不要であるか、非大域ゾーンでは使用されない場合でも、パッケージが大域ゾーンにインストールされるという情報が非大域ゾーン内で必要になる場合があります。この情報を使用すると、非大域ゾーンをソースとするパッケージの依存関係を大域ゾーンで適切に解決できます。

パッケージが保持するパラメータにより、非大域ゾーンのインストールされたシステムで内容を配布および可視にする方法が制御されます。SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータは、ゾーンがインストールされているシステムでのパッケージの特性を定義します。ゾーン環境内でパッケージを追加または削除する際、システム管理者は、必要に応じてこれらのパッケージパラメータ設定を検査してパッケージの適用範囲を確認できます。pkgparam コマンドを使用して、これらのパラメータの値を表示できます。パラメータの詳細については、「パッケージパラメータの情報」を参照してください。使用方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

パッケージの特性およびパラメータの詳細は、pkginfo(4) のマニュアルページを参照してください。パッケージのパラメータ値の表示については、pkgparam(1) のマニュアルページを参照してください。

パッケージ用に生成されるパッチ

パッケージ用にパッチを生成するときは、パラメータを元のパッケージと同じ値に設定する必要があります。

対話型パッケージ

対話型であることが必要とされるパッケージ、つまり要求スクリプトを含むパッケージは、現在のゾーンだけに追加されます。パッケージはほかのゾーンには伝達されません。大域ゾーンに対話型パッケージを追加すると、そのパッケージは、pkgadd コマンドに -G オプションを指定して追加する場合と同様に処理されます。このオプションの詳細については、「ゾーン内でのパッケージの追加について」を参照してください。

ゾーンの同期を維持する

非大域ゾーンにインストールされたソフトウェアと、大域ゾーンにインストールされたソフトウェアとの同期を最大限維持するのが最善です。これにより、複数のゾーンがインストールされたシステムで、管理の問題が発生するのを最小限に抑えることができます。

この目標を達成するために、大域ゾーン内でパッケージを追加または削除する際、次の規則がパッケージツールにより適用されます。

大域ゾーン内で実行可能なパッケージ操作

現在、パッケージが大域ゾーンにも、どの非大域ゾーンにもインストールされていない場合、パッケージは次の場所にインストールできます。

現在、パッケージが大域ゾーンだけにインストールされている場合:

現在、パッケージが大域ゾーンおよび非大域ゾーンの一部だけにインストールされている場合:

現在、パッケージが大域ゾーンおよびすべての非大域ゾーンにインストールされている場合、そのパッケージを大域ゾーンおよびすべての非大域ゾーンから削除できます。

これらの規則により、次のことが保証されます。

非大域ゾーン内で実行可能なパッケージ操作

すべての非大域ゾーン内で実行可能なパッケージ操作を次に示します。

ゾーン状態がパッチとパッケージの操作に与える影響

さまざまな状態の非大域ゾーンが存在しているシステムで、pkgaddpkgrmpatchadd、および patchrm の各コマンドを使用するとどうなるかを、次の表に示します。

Solaris 10 5/08 リリースでは、この表のインストール済み状態の説明にいくつかの修正が加えられました。

ゾーンの状態 

パッケージとパッチの操作に与える影響 

構成済み 

パッチツールとパッケージツールを実行できます。ソフトウェアはまだインストールされていません。 

インストール済み 

パッチツールとパッケージツールを実行できます。パッチとパッケージの操作中、システムはゾーンをインストール済み状態から「マウント済み」と呼ばれる新しい内部状態に移行します。パッチの適用が完了したあとで、ゾーンはインストール済み状態に戻されます。 

zoneadm -z zonename install が完了した直後にも、ゾーンはインストール済み状態に移行されます。今までに起動したことのないインストール済み状態のゾーンは、パッチを適用することも、パッケージコマンドを実行することもできません。少なくとも 1 度はゾーンを起動して稼働状態にする必要があります。ゾーンを少なくとも一度起動して、その後 zoneadm halt によってインストール済み状態に戻したあとは、パッチおよびパッケージのコマンドを実行できます。

準備完了 

パッチツールとパッケージツールを実行できます。 

稼働 

パッチツールとパッケージツールを実行できます。 

不完全 

zoneadm によってインストール中または削除中のゾーンです。パッチツールとパッケージツールは使用できません。ツールでは、ツールを使用できる適切な状態にゾーンを移行させることはできません。

ゾーン内でのパッケージの追加について

pkgadd(1M) のマニュアルページに記載されているように、pkgadd システムユーティリティーを使用して、ゾーンがインストールされている Solaris システムでパッケージを追加できます。

大域ゾーン内での pkgadd の使用

大域ゾーンで -G オプションを指定して pkgadd ユーティリティーを使用すると、大域ゾーンだけにパッケージを追加できます。パッケージはほかのゾーンには伝達されません。SUNW_PKG_THISZONE=true の場合、-G オプションは不要です。SUNW_PKG_THISZONE=false の場合、-G オプションが優先されます。

大域ゾーン内で pkgadd ユーティリティーを実行する場合、次の操作が適用されます。

パッケージを大域ゾーンとすべての非大域ゾーンに追加する

パッケージを大域ゾーンおよびすべての非大域ゾーンに追加するには、大域ゾーンで pkgadd ユーティリティーを実行します。大域管理者として、-G オプションを指定せずに pkgadd を実行します。

パッケージを大域ゾーンおよびすべての非大域ゾーンに追加する際、パッケージの影響を受ける領域について意識する必要はありません。

pkgadd ユーティリティーにより、次の手順が実行されます。

パッケージを大域ゾーンだけに追加する

パッケージを大域ゾーンだけに追加するには、大域ゾーンの大域管理者になり、-G オプションだけを指定して pkgadd ユーティリティーを実行します。

次の条件を両方満たす場合に、パッケージを大域ゾーンに追加できます。

pkgadd ユーティリティーにより、次の手順が実行されます。

大域ゾーンにインストールされているパッケージをすべての非大域ゾーンに追加する

大域ゾーンにすでにインストールされているパッケージをすべての非大域ゾーンに追加するには、大域ゾーンからそのパッケージを削除し、すべてのゾーンに再インストールする必要があります。

次の手順で、大域ゾーンにすでにインストールされているパッケージをすべての非大域ゾーンに追加します。

  1. 大域ゾーンで、pkgrm を使ってパッケージを削除します。

  2. -G オプションを指定せずにパッケージを追加します。

非大域ゾーン内での pkgadd の使用

指定された非大域ゾーン内でパッケージを追加するには、ゾーン管理者として、オプションを指定せずに pkgadd ユーティリティーを実行します。次のすべての条件が適用されます。

pkgadd ユーティリティーにより、次の手順が実行されます。

ゾーン内でのパッケージの削除について

pkgrm ユーティリティー (pkgrm(1M) のマニュアルページを参照) は、ゾーンがインストールされている Solaris システムでのパッケージの削除をサポートします。

大域ゾーン内での pkgrm の使用

大域ゾーンで pkgrm ユーティリティーを使用する場合、次の操作が適用されます。

次の条件が満たされる場合、ゾーン管理者は、管理する非大域ゾーンを対象としてパッケージの削除だけを実行できます。

パッケージを大域ゾーンとすべての非大域ゾーンから削除する

パッケージを大域ゾーンおよび非大域ゾーンから削除するには、大域管理者として大域ゾーン内で pkgrm ユーティリティーを実行します。

パッケージを大域ゾーンおよび非大域ゾーンから削除する際、パッケージの影響を受ける領域について意識する必要はありません。

pkgrm ユーティリティーにより、次の手順が実行されます。

非大域ゾーン内での pkgrm の使用

ゾーン管理者として、非大域ゾーン内で pkgrm ユーティリティーを使用してパッケージを削除します。次の制限が適用されます。

pkgrm ユーティリティーにより、次の手順が実行されます。

パッケージパラメータの情報

ゾーンのパッケージパラメータの設定

SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータは、ゾーンがインストールされているシステムでのパッケージの特性を定義します。非大域ゾーンがインストールされたシステムでパッケージを管理できるようにするには、これらのパラメータを設定する必要があります。

次の表に、パッケージパラメータの設定に使用できる 4 つの有効な組み合わせを示します。次の表に示されていない設定の組み合わせは無効であり、そのような設定を選択するとパッケージのインストールは失敗します。

3 つのパッケージパラメータをすべて設定したことを確認してください。3 つのパッケージパラメータをすべて空のままにしてもかまいません。ゾーンのパッケージパラメータが見つからない場合、パッケージツールではその設定は false として解釈されますが、パラメータの設定は省略しないように強くお勧めします。3 つのパッケージパラメータをすべて設定することにより、パッケージをインストールまたは削除するときのパッケージツールの動作を正確に指定します。

表 25–1 有効なパッケージパラメータ設定

SUNW_PKG_ALLZONES の設定

SUNW_PKG_HOLLOW の設定

SUNW_PKG_THISZONE の設定

パッケージの説明 

false 

false 

false 

これは、ゾーンのパッケージパラメータのすべてに値を指定しないパッケージに対するデフォルト設定です。 

この設定を持つパッケージは、大域ゾーンまたは非大域ゾーンにインストールできます。  

  • 大域ゾーン内で pkgadd コマンドを実行すると、パッケージは大域ゾーンおよびすべての非大域ゾーンにインストールされます。

  • 非大域ゾーン内で pkgadd コマンドを実行すると、パッケージはその非大域ゾーンだけにインストールされます。

どちらの場合も、パッケージがインストールされたすべてのゾーンで、パッケージの内容全体が可視になります。 

false 

false 

true 

この設定を持つパッケージは、大域ゾーンまたは非大域ゾーンにインストールできます。インストール後に新しい非大域ゾーンを作成した場合、パッケージはこれらの新しい非大域ゾーンには伝達されません。 

  • 大域ゾーン内で pkgadd コマンドを実行すると、パッケージは大域ゾーンだけにインストールされます。

  • 非大域ゾーン内で pkgadd コマンドを実行すると、パッケージはその非大域ゾーンだけにインストールされます。

どちらの場合も、パッケージがインストールされたゾーンで、パッケージの内容全体が可視になります。 

true 

false 

false 

この設定を持つパッケージは、大域ゾーンだけにインストールできます。pkgadd コマンドを実行すると、パッケージは大域ゾーンおよびすべての非大域ゾーンにインストールされます。すべてのゾーンで、パッケージの内容全体が可視になります。


注 –

パッケージを非大域ゾーンにインストールしようとすると失敗します。


true 

true 

false 

この設定を持つパッケージは、大域管理者が大域ゾーンだけにインストールできます。pkgadd コマンドを実行すると、パッケージの内容が大域ゾーンに完全にインストールされます。パッケージパラメータの値がこのように設定されている場合、パッケージの内容自体はどの非大域ゾーンにも提供されません。パッケージをインストール済みとして表示するために必要なパッケージインストール情報だけが、すべての非大域ゾーンにインストールされます。これにより、このパッケージに依存するほかのパッケージをインストールできるようになります。

パッケージの依存関係を検査できるように、パッケージはすべてのゾーンでインストール済みとして表示されます。 

  • 大域ゾーンでは、パッケージの内容全体が可視になります。

  • 完全ルート非大域ゾーンでは、パッケージの内容全体が不可視になります。

  • 非大域ゾーンが大域ゾーンからファイルシステムを継承する場合、このファイルシステムにインストールされているパッケージは非大域ゾーンで可視になります。パッケージで提供されるほかのすべてのファイルは、非大域ゾーン内では不可視になります。

    たとえば、疎ルート非大域ゾーンは、特定のディレクトリを大域ゾーンと共有します。これらのディレクトリは読み取り専用です。疎ルート非大域ゾーンは、/platform ファイルシステムをほかのゾーンと共有します。もう 1 つの例は、起動するハードウェアだけに関連するファイルがパッケージで提供されている場合です。


注 –

パッケージを非大域ゾーンにインストールしようとすると失敗します。


SUNW_PKG_ALLZONES パッケージパラメータ

オプションの SUNW_PKG_ALLZONES パッケージパラメータには、パッケージのゾーン範囲が記述されます。このパラメータにより、次のことが定義されます。

SUNW_PKG_ALLZONES パッケージパラメータに指定可能な値は 2 つあります。その値は、true および false です。デフォルト値は false です。このパラメータが設定されていない場合か、または true および false 以外の値に設定されている場合には、値 false が使用されます。

すべてのゾーンでパッケージのバージョンとパッチの改訂レベルが同一で「なければならない」パッケージでは、SUNW_PKG_ALLZONES パラメータを true に設定することをお勧めします。たとえば Solaris 10 など、特定の Solaris カーネルに依存した機能を提供するすべてのパッケージでも、このパラメータを true に設定することをお勧めします。パッケージに適用するパッチの SUNW_PKG_ALLZONES パラメータは、インストール済みパッケージに設定されている値と同じ値に設定する必要があります。このパラメータを true に設定しているパッケージのパッチ改訂レベルは、すべてのゾーンで一致していなければなりません。

他社製パッケージや Sun コンパイラなど、特定の Solaris カーネルに依存しない機能を提供するパッケージでは、このパラメータを false に設定することをお勧めします。このパラメータを false に設定しているパッケージの場合は、そのパッチのパラメータも false に設定する必要があります。このパラメータを false に設定しているパッケージの場合は、各ゾーンのパッケージバージョンまたはパッチ改訂レベルが異なっていてもかまいません。たとえば、2 つの非大域ゾーンにインストールされている Web サーバーのバージョンは、一致していなくてもかまいません。

SUNW_PKG_ALLZONES パッケージパラメータの値については、次の表で説明します。

表 25–2 SUNW_PKG_ALLZONES パッケージパラメータの値

値 

説明 

false

このパッケージは、大域ゾーンから大域ゾーンだけ、または大域ゾーンから大域ゾーンおよびすべての非大域ゾーンにインストールできます。また、任意の非大域ゾーンから同じ非大域ゾーンにもインストールできます。 

  • 大域管理者は、パッケージを大域ゾーンだけにインストールできます。

  • 大域管理者は、パッケージを大域ゾーンおよびすべての非大域ゾーンにインストールできます。

  • ゾーン管理者は、パッケージを非大域ゾーンにインストールできます。

パッケージを大域ゾーンから削除しても、ほかのゾーンからそのパッケージは削除されません。パッケージは非大域ゾーンごとに削除できます。 

  • パッケージを大域ゾーンにインストールする必要はありません。

  • パッケージをいずれかの非大域ゾーンにインストールする必要はありません。

  • パッケージはすべてのゾーンで同一である必要はありません。ゾーンごとにパッケージのバージョンが異なっていてもかまいません。

  • パッケージは、すべてのゾーンで暗黙的に共有されていないソフトウェアを提供します。これは、パッケージがオペレーティングシステムに固有ではないことを意味します。アプリケーションレベルのソフトウェアの大半がこのカテゴリに属します。たとえば、StarSuite 製品や Web サーバーがこれに該当します。

true

パッケージを大域ゾーンにインストールする場合、すべての非大域ゾーンにもインストールする必要があります。パッケージを大域ゾーンから削除する場合、すべての非大域ゾーンからも削除する必要があります。 

  • パッケージをインストールする場合、大域ゾーンにインストールする必要があります。その後、パッケージはすべての非大域ゾーンに自動的にインストールされます。

  • パッケージのバージョンは、すべてのゾーンで一致している必要があります。

  • パッケージは、すべてのゾーンで暗黙的に共有されているソフトウェアを提供します。パッケージは、すべてのゾーンで暗黙的に共有されるソフトウェアのバージョンに依存します。パッケージは、すべての非大域ゾーンで可視である必要があります。これには、カーネルモジュールも含まれます。

    パッケージ全体をすべての非大域ゾーンにインストールすることを要求することで、これらのパッケージを使用して、大域ゾーンにインストールされるパッケージの依存関係を非大域ゾーンから解決できます。

  • 大域管理者だけがパッケージをインストールできます。ゾーン管理者が非大域ゾーンにパッケージをインストールすることはできません。

SUNW_PKG_HOLLOW パッケージパラメータ

SUNW_PKG_HOLLOW パッケージパラメータは、パッケージがすべてのゾーンにインストールされ、かつすべてのゾーンで同一であることが求められる場合、そのパッケージをすべての非大域ゾーン内で可視にするべきかどうかを定義します。

SUNW_PKG_HOLLOW パッケージパラメータは、2 つの値 truefalse のいずれかを取ります。

SUNW_PKG_HOLLOW パッケージパラメータ値については、次の表で説明します。

表 25–3 SUNW_PKG_HOLLOW パッケージパラメータ値

値 

説明 

false

これは「hollow」パッケージではありません。 

  • 大域ゾーンにインストールする場合、すべての非大域ゾーンでパッケージ内容およびインストール情報が要求されます。

  • このパッケージの提供するソフトウェアは、すべての非大域ゾーンで可視でなければなりません。たとえば、truss コマンドを提供するパッケージがこれに該当します。

  • 現在の SUNW_PKG_ALLZONES パッケージパラメータ設定に適用される制限を除き、追加の制限は定義されません。

true

これは「hollow」パッケージです。 

  • パッケージの内容はどの非大域ゾーンにも提供されません。ただし、すべての非大域ゾーンでパッケージのインストール情報が求められます。

  • このパッケージの提供するソフトウェアは、すべての非大域ゾーンで可視であってはいけません。たとえば、大域ゾーンでのみ機能するカーネルドライバやシステム構成ファイルがこれに該当します。この設定により、実際にパッケージデータをインストールしなくても、非大域ゾーンが、大域ゾーンにのみインストールされるパッケージの依存関係を解決することが可能になります。

  • インストール中のパッケージに依存するほかのパッケージにより、このパッケージが依存関係の検査目的ですべてのゾーンにインストールされたと認識されます。

  • このパッケージ設定には、SUNW_PKG_ALLZONEStrue に設定するために定義されたすべての制限が含まれます。

  • 大域ゾーン内で、パッケージはインストール済みとして認識され、パッケージのすべての構成要素がインストールされます。パッケージのインストール時に、ディレクトリの作成、ファイルのインストール、およびクラス操作とほかのスクリプトが、必要に応じて実行されます。

  • 非大域ゾーン内で、パッケージはインストール済みとして認識されますが、パッケージの構成要素は 1 つもインストールされません。パッケージのインストール時に、ディレクトリの作成、ファイルのインストール、およびクラス操作やほかのインストールスクリプトは実行されません。

  • パッケージが大域ゾーンから削除される場合、パッケージは完全にインストールされていたと認識されます。パッケージの削除時に、該当するディレクトリおよびファイルが削除され、クラス操作またはほかのインストールスクリプトが実行されます。

SUNW_PKG_THISZONE パッケージパラメータ

SUNW_PKG_THISZONE パッケージパラメータは、パッケージを現在のゾーン (大域ゾーン、非大域ゾーンのいずれか) だけにインストールする必要があるかどうかを定義します。SUNW_PKG_THISZONE パッケージパラメータに設定可能な値は 2 つあります。その値は、true および false です。デフォルト値は false です。

SUNW_PKG_THISZONE パッケージパラメータの値については、次の表で説明します。

表 25–4 SUNW_PKG_THISZONE パッケージパラメータの値

値 

説明 

false

  • 非大域ゾーン内で pkgadd を実行する場合、パッケージは現在のゾーンだけにインストールされます。

  • 大域ゾーン内で pkgadd を実行する場合、パッケージは大域ゾーンにインストールされるだけでなく、現在インストールされているすべての非大域ゾーンにもインストールされます。さらに、将来新しくインストールされるすべての非大域ゾーンにも、そのパッケージが伝達されます。

true

  • パッケージは現在のゾーンだけにインストールされます。

  • 大域ゾーン内でパッケージをインストールする場合、そのパッケージは現存の非大域ゾーンや将来作成される非大域ゾーンには一切追加されません。これは、pkgadd-G オプションを指定した場合の動作と同じです。

パッケージ情報の照会

pkginfo ユーティリティー (pkginfo(1) のマニュアルページを参照) は、ゾーンがインストールされている Solaris システムでのソフトウェアパッケージデータベースの照会をサポートします。データベースの詳細は、「製品データベース」を参照してください。

大域ゾーンで、pkginfo ユーティリティーを使用すると、大域ゾーン内だけでソフトウェアパッケージデータベースを照会できます。非大域ゾーンで pkginfo ユーティリティーを使用すると、非大域ゾーン内だけでソフトウェアパッケージデータベースを照会できます。

ゾーン内でのパッチの追加について

通常、パッチは次の構成要素で構成されます。

patchadd コマンドを使用してパッチを適用する場合、稼働中のシステムにパッチを適用可能かどうかの判別にパッチ情報が使用されます。適用不可と判別された場合、パッチは適用されません。パッチの依存関係も、システムのすべてのゾーンに対して検査されます。必須の依存関係のいずれかが満たされない場合、パッチは適用されません。これには、以降のバージョンのパッチがインストール済みである場合も含まれます。

パッチに含まれる各パッケージも検査されます。パッケージがどのゾーンにもインストールされない場合、そのパッケージは省略され、パッチは適用されません。

すべての依存関係が満たされる場合、いずれかのゾーンにインストールされるパッチ内のパッケージすべてが、システムへのパッチ適用に使用されます。パッケージおよびパッチデータベースの更新も行われます。


注 –

Solaris 10 3/05 から Solaris 10 11/06: pkgadd -G を使ってインストールされたパッケージや pkginfo 設定が SUNW_PKG_THISZONE=true になっているパッケージにパッチを当てる「唯一の」方法は、patchadd -G を実行する方法です。この制限は Solaris 8/07 リリースで削除されています。


Solaris 10 8/07: 遅延起動パッチ

パッチ 119254-41 および 119255-41 以降、patchaddpatchrm のパッチインストールユーティリティーが変更され、機能を提供する特定のパッチの処理方法が変わりました。この変更は、これらのパッチをどの Solaris 10 リリースにインストールする場合にも影響を与えます。これらの遅延起動パッチによって、Solaris 10 3/05 リリース以降の各 Solaris 10 リリースに関連するカーネルパッチなどの機能パッチで提供される、大規模な変更の処理能力が向上します。

遅延起動パッチは、実行中のシステムの安定性を保証するためにループバックファイルシステム (lofs) を使用します。パッチが実行中のシステムに適用されると、lofs はパッチプロセス中の安定性を保持します。これらの大規模なカーネルパッチは必ずリブートを必要としますが、この必須リブートで lofs による変更がアクティブ化されるようになりました。パッチの README には、どのパッチでリブートが必要になるかが説明されています。

非大域ゾーンを実行しているか、lofs を無効にしている場合は、遅延起動パッチをインストールまたは削除する際に次の点を考慮してください。


注 –

Solaris Live Upgrade を使用してパッチの管理を行うと、実行中のシステムへのパッチに関連する問題を防ぐことができます。Solaris Live Upgrade は、パッチの適用に伴う停止時間を短縮し、問題発生時のフォールバック機能を提供してリスクを低減します。システムがまだ本稼働していても、アクティブでない起動環境 (BE) にパッチを適用したり、新しい BE で問題が発見された場合、元の BE に戻って起動することができます。『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』「パッケージまたはパッチによるシステムのアップグレード」を参照してください。


Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ

ゾーンの並列パッチは、標準の Solaris 10 パッチユーティリティーの拡張機能です。これは、Solaris 10 システム上の非大域ゾーンにパッチを適用するための方法であり、サポート対象に含まれます。この機能を使用すると、並列で非大域ゾーンへパッチを適用することにより、パッチ適用のパフォーマンスを高めます。

Solaris 10 10/09 より前のリリースでは、この機能は、119254-66 以降のリビジョン (SPARC) および 119255-66 以降のリビジョン (x86) のパッチユーティリティーのパッチで提供されます。

並列でパッチを適用する非大域ゾーンの最大数は patchadd, /etc/patch/pdo.conf の新しい構成ファイルに設定できます。このパッチのリビジョン 66 以降は、すべての Solaris 10 システムおよび Sun xVM Ops Center など高いレベルのパッチ自動化ツールで機能します。

ただし、最初にパッチを適用する必要があるのは大域ゾーンです。大域ゾーンへのパッチの適用が終了した時点で、num_proc= に設定されている数の非大域ゾーンに対して一緒にパッチの適用が行われます。最大数は、オンライン CPU の数の 1.5 倍であり、システム上の実際の非大域ゾーンの数まで設定できます。

次の例を参考にしてください。

システム上にこの数を超える非大域ゾーンがある場合は、最初の 6 つに並列でパッチを適用し、その後、最初のグループへのパッチの適用プロセスが終了すると、残りの非大域ゾーンにパッチが適用されます。

Solaris Live Upgrade とパッチを管理するこの新しいパッチを使用すれば、問題が発生した場合にフォールバック機能が使用できます。システムがまだ本稼働していても、アクティブでない起動環境 (BE) にパッチを適用したり、新しい BE で問題が発見された場合、元の BE に戻って起動することができます。

「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』も参照してください。


注 –

ホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように、ゾーンのすべてのパッケージをすばやく更新するには、大域ゾーンにパッチを適用する間は各ゾーンを切り離しておき、適用後に -U オプションを使用して再接続して、大域ゾーンのレベルと一致させます。詳細は、「パッチ適用のソリューションとして、接続時更新を使用する」を参照してください。


ゾーンがインストールされている Solaris システムでのパッチの適用

大域ゾーンで適用されるすべてのパッチが、すべてのゾーンで適用されます。非大域ゾーンをインストールする際も、大域ゾーンと同じパッチレベルでパッチが適用されます。大域ゾーンにパッチを適用する際、すべての非大域ゾーンで同様にパッチが適用されます。この処理により、すべてのゾーンにわたって同じパッチレベルが維持されます。

patchadd(1M) のマニュアルページに記載されているように、patchadd システムユーティリティーを使用して、ゾーンがインストールされているシステムにパッチを追加できます。

大域ゾーンでの patchadd の使用

パッチを大域ゾーンおよびすべての非大域ゾーンに追加するには、大域ゾーン内で大域管理者として patchadd を実行します。

大域ゾーンで patchadd を使用する場合、次の条件が両方適用されます。

パッチを大域ゾーンおよびすべての非大域ゾーンに追加する際、大域ゾーンから共有される領域にパッチが影響を及ぼすかどうかを意識する必要はありません。

patchadd ユーティリティーにより、次の手順が実行されます。

非大域ゾーン内での patchadd の使用

ゾーン管理者が非大域ゾーン内で patchadd を使用する場合、そのゾーンにパッチを追加する用途だけにコマンドを使用できます。次の場合に、パッチを非大域ゾーンに追加できます。

patchadd ユーティリティーにより、次の手順が実行されます。

ゾーンが含まれているシステムでの patchadd -Gpkginfo 変数の相互作用

次に、大域ゾーンおよび非大域ゾーンにパッチを追加する際の -G オプションと SUNW_PKG_ALLZONES 変数の相互作用について説明します。

大域ゾーン、-G 指定あり

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合、この使用法の結果はエラーとなり、処理は行われません。

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがない場合は、大域ゾーンのパッケージだけにパッチが適用されます。

大域ゾーン、-G 指定なし

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合は、すべてのゾーンにあるそれらのパッケージにパッチが適用されます。

SUNW_PKG_ALLZONES=TRUE に設定されていないパッケージがある場合は、該当するすべてのゾーンにあるそれらのパッケージにパッチが適用されます。「大域ゾーンのみ」のパッケージは、大域ゾーンだけにインストールされます。

非大域ゾーン、-G 指定ありまたは指定なし

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合、この使用法の結果はエラーとなり、処理は行われません。

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがない場合は、非大域ゾーンのパッケージだけにパッチが適用されます。

ゾーンがインストールされている Solaris システムでのパッチの削除

patchrm システムユーティリティー (patchrm(1M) のマニュアルページを参照) を使用して、ゾーンがインストールされているシステムでパッチを削除します。

大域ゾーン内での patchrm の使用

大域ゾーン管理者として大域ゾーン内で patchrm ユーティリティーを使用して、パッチを削除できます。patchrm ユーティリティーは、大域ゾーンのみ、または非大域ゾーンの一部からパッチを削除することはできません。

非大域ゾーン内での patchrm の使用

ゾーン管理者として非大域ゾーン内で patchrm ユーティリティーを使用すると、その非大域ゾーンだけを対象としてパッチの削除を実行できます。共有されている領域がパッチの影響を受けることはありません。

製品データベース

各ゾーンの個別パッケージ、パッチ、および製品レジストリデータベースには、そのゾーンで使用可能なインストール済みのソフトウェアすべてが記載されています。インストールする追加ソフトウェアまたはパッチの依存性検査はすべて、パッケージまたはパッチが大域ゾーンおよび 1 つ以上の非大域ゾーンでインストールまたは削除中でない限り、ほかのゾーンのデータベースに一切アクセスすることなく実行されます。パッケージまたはパッチが大域ゾーンおよび 1 つ以上の非大域ゾーンでインストールまたは削除中の場合は、適切な非大域ゾーンデータベースにアクセスする必要があります。

データベースの詳細については、pkgadm(1M) のマニュアルページを参照してください。