このセクションでは、IPS に関連する用語および概念を定義します。
IPS パッケージはマニフェストというテキストファイルで定義します。パッケージマニフェストには、鍵/値のペアとおそらくデータペイロードの定義された形式でパッケージアクションが記述されます。パッケージアクションには、ファイル、ディレクトリ、リンク、ドライバ、依存関係、グループ、ユーザー、ライセンス情報が含まれます。パッケージアクションは、パッケージのインストール可能なオブジェクトを表します。set アクションと呼ばれるアクションは、分類、サマリー、説明などのパッケージメタデータを定義します。
パッケージアクションおよびアクションキーを指定して、パッケージを検索できます。パッケージアクションの説明については、Oracle Solaris 12 でのImage Packaging System を使用したソフトウェアのパッケージ化と配布 の Package Content: Actionsまたは pkg(7) マニュアルページを参照してください。
制約パッケージおよびグループパッケージは、ファイルなどの内容を提供しません。制約パッケージおよびグループパッケージは、関連するパッケージのセットのインストールに役立つ依存関係を指定します。
制約パッケージは、互換性を持つパッケージバージョンスペース内にサーフェスを定義するために incorporate 依存関係を指定します。制約パッケージは、同時に作成されるソフトウェアパッケージのセットを定義するために使用され、個別にバージョン管理されません。incorporate 依存関係は、ソフトウェアの互換性のあるバージョンがまとめてインストールされるようにするために Oracle Solaris でよく使用されます。
incorporate 依存関係は、このイメージ内にインストールできる、そのパッケージのバージョンを制約します。パッケージは、incorporate 依存関係として指定するだけではインストールされません。パッケージをほかの何らかの方法でインストールする場合は (たとえば、require 依存関係でもある場合や、パッケージを明示的にインストールする場合)、incorporate 依存関係によって規定されたバージョンのみをインストールできます。たとえば、インストールされた制約パッケージ内で incorporate 依存関係として指定されたパッケージがバージョン値 1.4.3 を持つ場合、1.4.3 未満か 1.4.4 以上のバージョン値を持つそのパッケージのバージョンをインストールすることはできません。たとえば、バージョン値 1.4.3.7 を持つパッケージのバージョンはインストールできます。
制約パッケージ内で incorporate 依存関係として指定されているパッケージ自体が、制約パッケージの場合もあります。このように、制約パッケージのマニフェスト内でパッケージが指定されていない場合でも、多くのパッケージが制約パッケージによって影響を受ける可能性があります。そのインストールが制約パッケージによって影響を受けるパッケージは、その制約パッケージによって制約されます。制約パッケージ B-constraint に incorporate 依存関係を持つ制約パッケージ A-constraint を更新すると、B-constraint と、B-constraint によって制約されているほかのすべてのパッケージも更新されます。B-constraint を A-constraint とは別に更新しようとすると、エラーになることがあります。
制約パッケージは、使用中のサポート可能なイメージを容易に維持できるようにするために、制約されたパッケージを同期的に強制アップグレードします。一般的に、制約パッケージの incorporate 依存関係であるパッケージをインストールしたり更新したりしてはいけません。代わりに、制約パッケージを更新する必要があります。制約されているパッケージはアンインストールできますが、制約されているパッケージをインストールまたは更新する場合、バージョンが制約されます。関連情報については、制約パッケージによって指定されたバージョン制約の緩和を参照してください。
pkg:/entire パッケージは、ほかの多くの制約パッケージ上の incorporate 依存関係を指定して、イメージにインストールされているほとんどのシステムソフトウェアのバージョンを制約する特殊な制約パッケージです。
![]() | 注意 - pkg:/ パッケージを削除しないでください。pkg:/ パッケージは、システムパッケージのバージョンを制約して、結果として得られるパッケージセットがサポート可能なイメージになるようにします。適切なシステム更新と正しいパッケージ選択は、この制約パッケージに依存します。pkg:/ パッケージを削除すると、サポートされないシステムになります。 |
グループパッケージは、機能やツールを構成する一連のパッケージを指定します。グループパッケージをインストールすると、そのグループパッケージ内のすべての group 依存関係パッケージがインストールされます。グループパッケージ内で group 依存関係として指定されたパッケージは、パッケージのバージョンを指定しません。グループパッケージは、コンテンツ管理ツールであり、バージョン管理ツールではありません。
グループパッケージは、それらの group 依存関係に指定されているパッケージを提供しますが、それらのパッケージがすでにインストールされているか、回避リストに含まれている場合は除きます。回避リストについては、グループパッケージに含まれる一部のパッケージのインストールの回避を参照してください。
たとえば、group/feature/storage-server パッケージは、ストレージに関連するドライバ、サービス、ファイルシステム、I/O コンポーネント、ライブラリ、およびユーティリティーを提供します (これらがまだインストールされていない場合)。group/system/solaris-minimal-server パッケージは、サポートされる Oracle Solaris 環境に最低限必要なパッケージのセットを提供します。グループパッケージで提供されているすべてのパッケージを一覧表示する方法の例については、グループパッケージ内のすべてのインストール可能なパッケージの一覧表示を参照してください。
グループパッケージをアンインストールしても、group 依存関係内に指定されているすべてのパッケージが必ずしもアンインストールされるわけではありません。グループパッケージをアンインストールするとき、ほかのソフトウェアによって必要とされているパッケージで依然としてインストールされているものは、アンインストールされません。
それぞれのパッケージは障害管理リソース識別子 (FMRI) によって表されます。パッケージの完全な FMRI は、次の形式のスキーム、パブリッシャー、パッケージ名、およびバージョン文字列で構成されます。
scheme://publisher/name@version
スキーム、パブリッシャー、およびバージョン文字列はオプションです。
IPS コマンドオペランドのパッケージ名およびバージョンの照合に対して次のルールが適用されます。
パッケージ名。パッケージを一意に特定するパッケージ名のもっとも小さい部分を使用できます。glob(3C) 形式のワイルドカードとして 1 つ以上のパッケージ名と一致する ? および * 文字を使用できます。
パッケージバージョン。バージョンを指定した場合、バージョン文字列の右辺からコンポーネントを省略できます。文字 * をワイルドカードとして使用して、バージョン文字列のコンポーネント全体を照合できます。文字 * はコンポーネントの一部の照合に使用でできません。単一の * 文字は複数のコンポーネントを照合できません。? をバージョン文字列内で使用できません。
次の例でパッケージの一致について説明します。
名前のどこかに jre を含むインストール済みパッケージを照合します。
$ pkg list '*jre*' NAME (PUBLISHER) VERSION IFO runtime/java/jre-8 1.8.0.181.12 i--
名前のどこかに java を含み、あらゆるコンポーネントバージョンで、ブランチバージョンが 11.4 のすべてのインストール済みパッケージを照合します。
$ pkg list '*java*@*-11.4' NAME (PUBLISHER) VERSION IFO library/javascript/jjv 1.0.2-11.4.0.0.1.10.0 i-- system/management/rad/client/rad-java 11.4-11.4.0.0.1.10.1 i--
次のコマンドと前のコマンドの 1 文字の違いに注意してください。
$ pkg list '*java*@*11.4' pkg list: Illegal FMRI '*java*@*11.4': Bad Version: *11.4
アスタリスク * はバージョンコンポーネントの一部や複数のバージョンコンポーネントを照合できません。
$ pkg list '*java*@11.4-11.4.*.10.0' pkg list: no packages matching the following patterns are installed: *java*@11.4-11.4.*.10.0 $ pkg list '*java*@*.10.0' pkg list: no packages matching the following patterns are installed: *java*@*.10.0
すべての IPS パッケージ FMRI のスキームは pkg です。次に示す compliance セキュリティーコンプライアンスフレームワークのパッケージ FMRI の例で、 solaris はパブリッシャー、security/compliance はパッケージ名、11.4-11.4.0.0.1.10.1:20180702T144054Z はバージョンです。
pkg://solaris/security/compliance@11.4-11.4.0.0.1.10.1:20180702T144054Z
pkg
solaris
パブリッシャーを指定する場合、パブリッシャー名の前に pkg:// または // を付ける必要があります。
security/compliance
パッケージ名は、スラッシュ (/) 文字で区切られた任意の数のコンポーネントから成る階層形式です。IPS コマンドでは、コマンドで使用するパッケージ名によってそのパッケージが一意に識別される場合、パッケージ名の前のコンポーネントは省略できます。完全なパッケージ名を指定するがパブリッシャーは省略する場合、完全なパッケージ名の前に、pkg:// または // ではなく、pkg:/ または / を付けることができます。短縮したパッケージ名を指定する場合は、パッケージ名の左側にほかの文字を使用しないでください。
バージョン文字列は次の 3 つの部分で構成され、タイムスタンプの形式は dateTtimeZ です。
component_version-branch_version:time_stamp
オペレーティングシステムに緊密に結合されたコンポーネントの場合、コンポーネントバージョン番号は minor.update です。FOSS コンポーネントなどのほかのコンポーネントは独自のバージョン番号を持っています。次の例で、web/server/apache-24 パッケージのバージョン番号は 2.4.25 です。
pkg://solaris/web/server/apache-24@2.4.33-11.4.0.0.1.10.0:20180702T172601Z
コンポーネントバージョン番号は、pkg info 出力の「Version」と同じです。
ブランチバージョン (存在する場合) は、ハイフン (-) のあとに続ける必要があります。ブランチバージョン文字列は、pkg info の出力の「Branch」と同じです。
Oracle Solaris パッケージでは、パッケージ FMRI のバージョン文字列のブランチバージョン部分に次の情報が示されます。
minor.update.sru.order.platform.build.rev
uname -r コマンドで出力される major.minor の minor 部分。
この Oracle Solaris リリースの更新リリース番号。
この更新リリースのサポート・リポジトリの更新 (SRU) 番号。SRU はほぼ 1 か月に 1 回、更新され、バグを修正したり、セキュリティーの問題を修正したり、新しいハードウェアに対するサポートを提供します。Oracle サポート・リポジトリはサポート契約下のシステムでのみ使用できます。
この値は内部で使用されます。
この値は内部で使用されます。
SRU のビルド番号、またはリリースの更新番号。
個々のナイトリービルドのビルド番号。
パッケージが IDR (Interim Diagnostic or Relief) 更新の場合、パッケージ FMRI の component_version-branch_version は単なる単一フィールドです。たとえば、idr1929 の FMRI は pkg://solaris/idr1929@4:20160216T222617Z で、バージョンの完全な component_version-branch_version 部分は 4 にすぎません。IDR は、正式なパッケージ更新が発行されるまで、顧客の問題の診断を支援したり、問題の一時的な解決策を提供したりするためのパッケージ更新です。IDR の詳細については、IDR カスタムソフトウェア更新のインストールを参照してください。
タイムスタンプはコロン (:) の後に続ける必要があります。タイムスタンプは、ISO-8601 基本形式 (YYYYMMDDTHHMMSSZ) のパッケージが発行された日時です。
パブリッシャーは、1 つ以上のパッケージを提供する人または組織を示します。パブリッシャーは、パッケージリポジトリまたはパッケージアーカイブを使用してパッケージを配布できます。パブリッシャーは、好きな検索順序で構成できます。パッケージインストールコマンドを指定し、パッケージ仕様にパブリッシャーの名前が含まれない場合、そのパッケージに対して、検索順序の先頭のパブリッシャーが検索されます。指定されたパッケージ FMRI パターンに一致するものが見つからない場合は、検索順序の 2 番目のパブリッシャーが検索されるというように、パッケージが見つかるか、すべてのパブリッシャーが検索されるまで繰り返されます。
リポジトリは、パッケージが公開される場所であり、またそれらのパッケージが取得される場所です。場所は URI (Universal Resource Identifier) によって指定されます。カタログは、リポジトリ内のすべてのパッケージのリストです。
パッケージアーカイブは、パブリッシャーの情報と、そのパブリッシャーによって提供された 1 つ以上のパッケージを含むファイルです。
起点は、パッケージのメタデータ (カタログ、マニフェスト、検索インデックスなど) とパッケージの内容 (ファイル) の両方を含むパッケージリポジトリです。イメージ内の特定のパブリッシャーに対して複数の起点が構成されている場合、IPS クライアントは、パッケージデータの取得元として最適な起点を選択しようとします。
ミラーは、パッケージの内容のみを含むパッケージリポジトリです。ミラーリポジトリからパッケージをインストールおよび更新する IPS クライアントは、起点リポジトリからメタデータをダウンロードする必要があります。IPS クライアントがパッケージのコンテンツをミラーからダウンロードする場合でも、クライアントはパブリッシャーのカタログを取得するために起点にアクセスします。パブリッシャーに対してミラーが構成されている場合、IPS クライアントは、パッケージの内容の取得にミラーを優先します。イメージ内の特定のパブリッシャーに対して複数のミラーが構成されている場合、IPS クライアントは、パッケージの内容の取得元として最適なミラーを選択しようとします。すべてのミラーにアクセスできない、必要な内容がない、または遅くなる場合、IPS クライアントは起点から内容を取得します。詳細は、pkg(7) マニュアルページのパブリッシャーおよびリポジトリに関するセクションを参照してください。
イメージは、IPS パッケージをインストールでき、その他の IPS 操作を実行できる場所です。
ブート環境 (BE) は、イメージのブート可能なインスタンスです。物理または仮想システム上に複数の BE を維持することができ、異なるオペレーティングシステムバージョンなどの異なるソフトウェアバージョンを各 BE にインストールできます。システムをブートするとき、システム上の任意の BE にブートすることを選択できます。パッケージ操作の結果として、新しい BE が自動的に作成されることがあります。新しい BE が自動的に作成されるかどうかは、ブート環境ポリシーイメージのプロパティーで説明するように、イメージポリシーに依存します。また、ブート環境オプションに記載されているオプションを指定することによって、新しい BE を明示的に作成することもできます。新規 BE を作成するための beadm コマンドの使用方法については、Oracle Solaris 12 ブート環境の作成と管理を参照してください。
パッケージは、BE の一部であるファイルシステムにのみインストールできます。たとえば、デフォルトの Oracle Solaris 11 インストールでは、rpool/ROOT/BEname/ の下のデータセットのみがパッケージ操作用にサポートされます。
もう 1 つのイメージの例として、Oracle Solaris ゾーンがあります。非大域ゾーンは、大域ゾーンと呼ばれる Oracle Solaris オペレーティングシステムのインスタンス内で作成される、仮想化されたオペレーティングシステム環境です。大域ゾーンは親イメージで、その大域ゾーン内の非大域ゾーンはその大域ゾーンの子イメージです。IPS コマンド出力では、非大域ゾーンは親の大域ゾーンイメージにリンクされていることから、しばしばリンクされたイメージと呼ばれます。
非大域ゾーンの操作に記載されているように、大域ゾーンで実行される IPS コマンドは、非大域ゾーンに影響することがあります。大域ゾーンで実行される IPS コマンドは、カーネルゾーン (solaris-kz ブランドゾーン) または Oracle Solaris 10 ゾーン (solaris10 branded zones) に影響しません。このガイドで、「非大域ゾーン」とは solaris ブランドの Oracle Solaris 11 非大域ゾーンを意味します。ゾーンについては、Oracle Solaris ゾーンの紹介を参照してください。
ソフトウェアには、オプションのコンポーネントや、相互に排他的なコンポーネントが含まれることがあります。オプションのコンポーネントの例には、ロケールやドキュメントがあります。相互に排他的なコンポーネントの例には、SPARC バイナリと x86 バイナリや、デバッグバイナリと非デバッグバイナリなどがあります。IPS では、オプションのコンポーネントをファセットと呼び、相互に排他的なコンポーネントをバリアントと呼びます。
ファセットとバリアントは、イメージに設定される特殊プロパティーです。ファセットとバリアントは、パッケージマニフェスト内のアクションに設定されるタグでもあります。アクションのファセットおよびバリアントタグの値とイメージに設定されたファセットおよびバリアントの値の比較により、そのパッケージアクションがインストール可能かどうかを判別します。たとえば、イメージ内で特定のロケールファセットを false に設定した場合、そのファセットを指定しているファイルアクションはどれもインストールされず、そのファセットを指定している現在インストール済みのファイルアクションはアンインストールされます。
イメージに設定されているファセットとバリアントの値を表示または変更する方法など、ファセットとバリアントの詳細については、オプションのコンポーネントのインストールの制御を参照してください。