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

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

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

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 オプションを指定した場合の動作と同じです。