ファセットとバリアントはイメージに設定される特殊なプロパティーであり、パッケージマニフェスト内のアクションに設定されるタグです。アクションのファセットおよびバリアントタグの値とイメージに設定されたファセットおよびバリアントの値の比較により、そのパッケージアクションがインストール可能かどうかを判別します。
各ファセットタグおよびバリアントタグには名前と値があります。1 つのアクションに複数のファセットタグおよびバリアントタグを付けることができます。複数のファセットタグやバリアントタグが付くコンポーネントの例として、開発者によって使用されるアーキテクチャー固有のヘッダーファイルや SPARC 大域ゾーン専用のコンポーネントがあります。
ほとんどのバリアントタグは、さまざまな値を持つことができます。バリアント値を指定するパッケージをインストールするために、バリアントタグの値をイメージに設定する必要があります。arch および zone バリアントは、イメージを作成し、その初期コンテンツをインストールするプログラムによって設定されます。イメージ内の debug.* バリアントはデフォルトで false です。
アクションに設定されるファセットタグは、値 true のみを持つことができます。イメージ内で特定のファセット値を false に設定した場合、そのファセットを指定しているファイルまたはその他のアクションはどれもインストールされず、そのファセットを指定している現在インストール済みのファイルアクションはアンインストールされます。
次のアルゴリズムは、イメージに設定されたファセットとバリアントが、特定のアクションがインストールされるかどうかに影響するしくみを示しています。
ファセットまたはバリアントタグのないアクションは常にインストールされます。
ファセットタグのあるアクションは、イメージ上のタグに一致するすべてのファセットまたはファセットパターンが false に設定されていないかぎり、インストールされます。いずれかのファセットが true に設定されているか、明示的に設定されていない (true はデフォルト) 場合、アクションがインストールされます。
バリアントタグのあるアクションは、すべてのバリアントタグの値がイメージに設定されている値と同じ場合にのみインストールされます。
ファセットタグとバリアントタグの両方があるアクションは、ファセットとバリアントの両方でアクションのインストールが許可されている場合にインストールされます。