ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11 ソフトウェアパッケージの追加および更新 Oracle Solaris 11 Information Library (日本語) |
ソフトウェアには、省略可能なコンポーネントや、相互に排他的なコンポーネントが含まれることがあります。省略可能なコンポーネントの例には、ロケールやドキュメントがあります。相互に排他的なコンポーネントの例には、SPARC バイナリと x86 バイナリや、デバッグバイナリと非デバッグバイナリなどがあります。IPS では、省略可能なコンポーネントをファセット、相互に排他的なコンポーネントをバリアントと呼びます。
ファセットとバリアントはイメージの特殊なプロパティーであり、個々のパッケージには設定できません。イメージに設定されているファセットとバリアントの現在の値を表示するには、pkg facet コマンドと pkg variant コマンドを使用します。イメージに設定されているファセットとバリアントの現在の値を変更するには、pkg change-facet コマンドと pkg change-variant コマンドを使用します。pkg(1) のマニュアルページと下の例を参照してください。
ファセットとバリアントはパッケージアクションのタグとして指定します。各ファセットタグおよびバリアントタグには名前と値があります。1 つのアクションに複数のファセットタグおよびバリアントタグを付けることができます。複数のファセットタグやバリアントタグが付くコンポーネントの例として、開発者によって使用されるアーキテクチャー固有のヘッダーファイルや SPARC 大域ゾーン専用のコンポーネントがあります。
バリアントタグの例は variant.arch=sparc です。ファセットタグの例は facet.devel=true です。ファセットとバリアントは、facet. と variant. を先頭に付けずに参照されることがあります。
ファセットはブール型です。それらには true (有効) または false (無効) のみ設定できます。デフォルトで、イメージ内のすべてのファセットは、true に設定されていると見なされます。アクションのファセットタグの値には true のみを指定すべきであり、それ以外の値では動作が不確定になります。イメージに設定されるファセットは、doc.man などの完全なファセットか、locale.* などのパターンになります。これは、ファセット名前空間の一部を無効にし、その中の個々のファセットのみを有効にする場合に役立ちます。たとえば、次の例に示すように、すべてのロケールを無効にしてから、1 つか 2 つの特定のロケールのみを有効にすることができます。
# pkg change-facet locale.*=false [output about packages being updated] # pkg change-facet locale.en_US=true [output about packages being updated]
ほとんどのバリアントは任意の数の値を設定できます。たとえば、arch バリアントには、i386、sparc、ppc、arm、またはディストリビューションでサポートされているどんなアーキテクチャーでも設定できます。(Oracle Solaris では i386 および sparc のみ使用されます。)例外は debug バリアントです。debug バリアントには、true または false のみを設定でき、ほかの値では動作が不確定になります。ファイルアクションに非デバッグバージョンとデバッグバージョンの両方がある場合、次の例に示すように、両方のバージョンに該当する debug バリアントが明示的に設定されている必要があります。
file group=sys mode=0644 overlay=allow owner=root \ path=etc/motd pkg.csize=115 pkg.size=103 preserve=true \ variant.debug.osnet=true file group=sys mode=0644 overlay=allow owner=root \ path=etc/motd pkg.csize=68 pkg.size=48 preserve=true \ variant.debug.osnet=false
バリアントを使用するパッケージをインストールするために、バリアント値をイメージに設定する必要があります。arch および zone バリアントは、イメージを作成し、その初期コンテンツをインストールするプログラムによって設定されます。イメージ内の debug.* バリアントは、デフォルトで false です。
イメージに設定されたファセットとバリアントは、特定のアクションがインストールされるかどうかに影響します。
ファセットまたはバリアントタグのないアクションは常にインストールされます。
ファセットタグのあるアクションは、イメージ上のタグに一致するすべてのファセットまたはファセットパターンが false に設定されていないかぎり、インストールされます。いずれかのファセットが true に設定されているか、明示的に設定されていない (true はデフォルト) 場合、アクションがインストールされます。
バリアントタグのあるアクションは、すべてのバリアントタグの値がイメージに設定されている値と同じ場合にのみインストールされます。
ファセットタグとバリアントタグの両方があるアクションは、ファセットとバリアントの両方でアクションのインストールが許可されている場合にインストールされます。
独自のファセットおよびバリアントタグを作成できます。Oracle Solaris では、次のタグが一般に使用されます。
|
次のリストに、Oracle Solaris で使用される小さなファセットタグの例を示します。
facet.devel facet.doc facet.doc.html facet.doc.info facet.doc.man facet.doc.pdf facet.locale.de facet.locale.en_GB facet.locale.en_US facet.locale.fr facet.locale.ja_JP facet.locale.zh_CN
現在のイメージに設定されているバリアントとファセットの値を表示し、現在のイメージのバリアントとファセットを変更できます。バリアントとファセットを変更すると、多数のパッケージが更新され、新しい BE が必要になることがあります。変更する前に、どのような変更が行われるかを確認するには、-nv を使用します。
設定されているバリアントの値を表示するには、pkg variant コマンドを使用します。
/usr/bin/pkg variant [-H] [variant_spec ...]
$ pkg variant VARIANT VALUE variant.opensolaris.zone global variant.arch i386 $ pkg variant -H variant.arch variant.arch i386
バリアントの値を変更するには、pkg change-variant コマンドを使用します。
/usr/bin/pkg change-variant [-nvq] [-g path_or_uri ...] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] variant_spec=instance ...
次のコマンドは、多数のパッケージが影響を受けるため、大量の出力が生成されます。新しい BE はデフォルトで作成されませんが、バックアップ BE が作成される可能性があります。BE が作成される状況については、「ブート環境ポリシーイメージのプロパティー」を参照してください。
-n オプションを使用すると、実際の変更を行わずに、この操作を -n なしで実行した場合に何が変更されるかを確認できます。
# pkg change-variant -nv --accept variant.debug.*=true Packages to update: 831 Variants/Facets to change: 4 Estimated space available: 112.19 GB Estimated space to be consumed: 220.76 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed variants/facets: variant variant.debug.*: true facet facet.locale.en_US: None facet facet.locale.en: None facet facet.locale.*: None Changed packages: solaris ...
設定されているファセットの値を表示するには、pkg facet コマンドを使用します。
/usr/bin/pkg facet [-H] [facet_spec ...]
$ pkg facet FACETS VALUE facet.locale.en_US True facet.locale.en True facet.locale.* False $ pkg facet -H facet.locale.* facet.locale.* False
ファセットの値を変更するには、pkg change-facet コマンドを使用します。
/usr/bin/pkg change-facet [-nvq] [-g path_or_uri ...] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] facet_spec=[True|False|None] ...
-n オプションを使用すると、実際の変更を行わずに、この操作を -n なしで実行した場合に何が変更されるかを確認できます。
ファセットの値を None に設定すると、ファセットの仕様が現在のイメージから削除されます。
次のコマンドは、多数のパッケージが影響を受けるため、大量の出力が生成されます。使用される追加の領域の量は M バイトではなく、G バイト単位です。この操作には、長い時間を必要とする可能性があり、このイメージとパッケージリポジトリ間で大量のネットワークトラフィックが発生する可能性があります。新しい BE はデフォルトで作成されませんが、バックアップ BE が作成される可能性があります。BE が作成される状況については、「ブート環境ポリシーイメージのプロパティー」を参照してください。
# pkg change-facet -nv facet.locale.*=true Packages to update: 831 Variants/Facets to change: 1 Estimated space available: 112.19 GB Estimated space to be consumed: 2.96 GB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed variants/facets: facet facet.locale.*: True Changed packages: solaris ...