状況によっては、結合の制約を緩めた方がよい場合があります。
おそらく bar は foo と関係なく機能できますが、foo を、結合の incorporate 依存関係によって定義された一連のバージョン内にとどめておく必要があります。
ファセットを使用すると結合の制約を緩めることができ、それによって管理者は特定の incorporate 依存関係を効果的に無効にできるようになります。ファセットについては、Chapter 5, バリエーションの許可に詳しく説明されています。簡単に言えば、ファセットとはパッケージ内のアクションに適用して、作成者がそれらのアクションをオプションとしてマーク付けできるようにする特別な属性です。
このようにアクションがファセット属性でマーク付けされると、pkg change-facet コマンドを使用して、それらのファセットを含むアクションを有効または無効にすることができます。
一般に、オプションで incorporate 依存関係をインストールするファセットには facet.version-lock.name という名前が付けられます。ここでは、name はその depend アクションを含むパッケージの名前です。
上記の例を使用すると、myincorp パッケージマニフェストには次の行を含めることができます。
set name=pkg.fmri value=myincorp@1.0 depend fmri=foo@1.0 type=incorporate depend fmri=bar@1.0 type=incorporate facet.version-lock.bar=true
デフォルトでは、この結合には bar パッケージへの depend アクションが含まれており、bar をバージョン 1.0 に制約しています。この制約は、次のコマンドによって緩和されます。
$ pkg change-facet version-lock.bar=false
このコマンドの実行が成功したあとで、bar パッケージは結合の制約から解放され、必要に応じてバージョン 2.0 にアップグレードできます。