Go to main content

Oracle® Solaris 11.4 のシステムの更新およびソフトウェアの追加

印刷ビューの終了

更新: 2018 年 8 月
 
 

イメージとパブリッシャーのプロパティーの構成

イメージポリシーを実装するには、イメージのプロパティーを設定します。このセクションでは、イメージとパブリッシャーのプロパティーと、これらのプロパティーの設定方法について説明します。イメージプロパティーの説明については、pkg(1) のマニュアルページのイメージプロパティーに関するセクションも参照してください。

イメージが最後に変更された時間を知る必要があるデーモンまたはほかのプログラムは、ファイル /var/pkg/modified のタイムスタンプを参照できます。/var/pkg/modified のタイムスタンプは、イメージを変更する操作が発生するたびに更新されます。その時点の変更に関する情報を表示するには、pkg history コマンドを使用します。詳細は、操作履歴の表示を参照してください。

ブート環境ポリシーイメージのプロパティー

イメージは、IPS パッケージをインストールでき、その他の IPS 操作を実行できる場所です。ブート環境 (BE) は、イメージのブート可能なインスタンスです。システム上に複数の BE を維持することができ、各 BE にそれぞれ異なるソフトウェアバージョンをインストールすることもできます。システムをブートするとき、システム上の任意の BE にブートすることを選択できます。

パッケージ操作の結果として、新しい BE が自動的に作成されることがあります。明示的に新しい BE を作成することもできます。新しい BE が作成されるかどうかは、このセクションで説明するようにイメージポリシーに依存します。

デフォルトで、次のいずれかの操作を実行すると、新しい BE が自動的に作成されます。

  • 一部のドライバやその他のカーネルコンポーネントなど、特定のキーシステムパッケージをインストールまたは更新する。重要なシステムコンポーネントは、バリアントやファセットを変更したり、パッケージをインストール、アンインストール、および更新したりするときに更新できます。

  • --be-name--require-new-be--backup-be-name--require-backup-be のいずれかのオプションを指定する。

  • be-policy イメージポリシーを always-new に設定する。このポリシーでは、次のブート時にアクティブに設定されている新しい BE で、すべてのパッケージ操作が実行されます。

新しい BE が作成される場合、システムは次の処理を実行します。

  1. 現在の BE のクローンを作成します。

    クローンの BE には、元の BE のメインのルートデータセットより下の階層にあるすべての要素が格納されます。共有ファイルシステムは、ルートデータセットの下にはなく、複製されません。代わりに、新しい BE は元の共有ファイルシステムにアクセスします。

  2. クローン BE 内でパッケージを更新します。現在の BE 内でパッケージを更新しないでください。

    現在の BE で非大域ゾーンが構成されている場合、これらの既存のゾーンが新しい BE で構成されます。

  3. --no-be-activate が指定されていないかぎり、システムの次回ブート時に、新しい BE をデフォルトのブート選択肢に設定します。現在の BE は代替のブート選択肢として残ります。

バックアップ BE が作成される場合、システムは次の処理を実行します。

  1. 現在の BE のクローンを作成します。

  2. 現在の BE 内でパッケージを更新します。クローン BE 内でパッケージを更新しないでください。

新しい BE が必要でも、それを作成するための十分な空き領域がない場合、既存の不要な BE を削除できる場合があります。BE の詳細は、Oracle Solaris 12 ブート環境の作成と管理を参照してください。

次のイメージプロパティーの設定方法については、イメージのプロパティーの設定を参照してください。

be-policy

パッケージ操作中にいつ BE が作成されるかを指定します。次の値が許可されます。

default

デフォルトの BE 作成ポリシー create-backup を適用します。

always-new

次のブート時にアクティブに設定されている新しい BE でパッケージ操作を実行するため、すべてのパッケージ操作に対してリブートを必要とします。明示的に要求されないかぎり、バックアップ BE は作成されません。

このポリシーはもっとも安全ですが、リブートしないとパッケージを追加できないため、ほとんどのサイトの要求よりも厳格です。

create-backup

リブートを必要とするパッケージ操作の場合、このポリシーにより、次のブート時にアクティブに設定される新しい BE が作成されます。パッケージが変更されるか、カーネルに影響する可能性のあるコンテンツがインストールされて操作がライブ BE に影響する場合、バックアップ BE は作成されますがアクティブには設定されません。バックアップ BE を明示的に要求することもできます。

このポリシーは、新しくインストールされたソフトウェアによりシステムが不安定になっている場合にのみ潜在的に危険です。この可能性はありますが、比較的まれです。

when-required

リブートを必要とするパッケージ操作の場合、このポリシーにより、次のブート時にアクティブに設定される新しい BE が作成されます。明示的に要求されないかぎり、バックアップ BE は作成されません。

ライブ BE へのパッケージングの変更によって、それ以上の変更が不可能になる場合、最新の代替 BE が存在しない可能性があるため、このポリシーには最大のリスクがあります。

パッケージの署名のプロパティー

署名付きパッケージをインストールする場合は、このセクションで説明するイメージプロパティーとパブリッシャープロパティーを、パッケージの署名を検証するように設定します。

署名付きパッケージのイメージプロパティー

次のイメージプロパティーを、署名付きパッケージを使用するように構成します。

signature-policy

このプロパティーの値により、イメージ内のパッケージのインストール、更新、変更、または検証時に、マニフェストに実行されるチェックが決まります。パッケージに適用される最終的なポリシーは、イメージポリシーとパブリッシャーポリシーの組み合わせに依存します。この組み合わせの厳格さは、少なくとも、この 2 つのポリシーが個別に適用された場合の厳格な方と同じです。デフォルトでは、パッケージクライアントは証明書が失効済みかどうかをチェックしません。そのようなチェック (パッケージクライアントから外部 Web サイトへのアクセスが必要な場合がある) を有効にするには、check-certificate-revocation イメージプロパティーを true に設定します。次の値が許可されます。

ignore

すべてのマニフェストの署名を無視します。

verify

署名が含まれているすべてのマニフェストが有効に署名されていることを確認しますが、インストール済みパッケージがすべて署名されている必要はありません。

これがデフォルト値です。

require-signatures

新しくインストールされたすべてのパッケージに、有効な署名が少なくとも 1 つ含まれている必要があります。インストール済みパッケージに有効な署名が含まれていない場合は、pkg fix および pkg verify コマンドでも警告が表示されます。

require-names

require-signatures と同じ要件に従いますが、signature-required-names イメージプロパティーで一覧表示される文字列が、署名の信頼のチェーンを検証するために使用される証明書の共通名としても表示される必要があります。

signature-required-names

このプロパティーの値は、パッケージの署名の検証中に、証明書の共通名として表示される必要のある名前の一覧です。

署名付きパッケージのパブリッシャープロパティー

次のパブリッシャープロパティーを、特定のパブリッシャーからの署名付きパッケージを使用するように構成します。

signature-policy

このプロパティーの機能は、このプロパティーが指定したパブリッシャーからのパッケージにのみ適用される点を除き、signature-policy イメージプロパティーの機能と同じです。

signature-required-names

このプロパティーの機能は、このプロパティーが指定したパブリッシャーからのパッケージにのみ適用される点を除き、signature-required-names イメージプロパティーの機能と同じです。

パッケージの署名プロパティーの構成

パッケージの署名プロパティーを構成するには、set-propertyadd-property-valueremove-property-value、および unset-property サブコマンドを使用します。

特定のパブリッシャーの署名ポリシーと必要な名前を指定するには、set-publisher サブコマンドの --set-property--add-property-value--remove-property-value、および --unset-property オプションを使用します。

次の例は、このイメージで、すべてのパッケージが署名されることを必須にするように構成します。また、この例では、信頼のチェーン内のいずれかの証明書の共通名として文字列「oracle.com」が表示されることも必須にします。

$ pkg set-property signature-policy require-names oracle.com

次の例は、このイメージで、署名されたすべてのパッケージが検証されることを必須にするように構成します。

$ pkg set-property signature-policy verify

次の例は、このイメージで、パブリッシャー example.com からインストールされたすべてのパッケージが署名されることを必須にするように構成します。

$ pkg set-publisher --set-property signature-policy=require-signatures example.com

次の例は、必要な署名を追加します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるイメージの共通名の一覧に文字列 trustedname を追加します。

$ pkg add-property-value signature-required-names trustedname

次の例は、必要な署名を削除します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるイメージの共通名の一覧から文字列 trustedname を削除します。

$ pkg remove-property-value signature-required-names trustedname

次の例は、指定したパブリッシャーの必要な署名を追加します。この例では、有効と見なされるには、署名の信頼のチェーンに表示される必要のあるパブリッシャー example.com の共通名の一覧に文字列 trustedname を追加します。

$ pkg set-publisher --add-property-value \
signature-required-names=trustedname example.com

追加のイメージのプロパティー

ca-path

SSL 操作用の CA 証明書が格納されたディレクトリを指すパス名を指定します。このディレクトリの形式は、ベースとなる SSL 実装に固有です。信頼できる CA 証明書のために別の場所を使用するには、別のディレクトリを指すようにこの値を変更します。CA ディレクトリの要件については、SSL_CTX_load_verify_locations(3openssl) の CApath に関する項目を参照してください。

デフォルト値は /etc/openssl/certs です。

check-certificate-revocation

true に設定すると、パッケージクライアントは、署名検証のために使用される証明書の CRL 配布ポイントへのアクセスを試み、発行時よりもあとに証明書が失効していないかどうかを調べます。

デフォルト値は False です。

content-update-policy

パッケージシステムがパッケージ操作中に編集不能なファイルを更新する時期を指定します。次の値が許可されます。

default

デフォルトのコンテンツ更新ポリシーを常に適用します。

always

変更された編集不能なファイルを常にダウンロードおよび更新します。

when-required

更新が必要だということがパッケージシステムで決定された場合に限り、変更された編集不能なファイルをダウンロードして更新します。

デフォルト値は always です。

flush-content-cache-on-success

これが true に設定されている場合、パッケージクライアントはイメージ変更操作が正常に完了したときに内容キャッシュ内のファイルを削除します。BE を作成する操作の場合は、ソースと出力先の両方の BE から内容が削除されます。

このプロパティーを使用して、ディスク容量の限られたシステムで内容キャッシュを小さく保つことができます。このプロパティーを使用すると、操作が完了するまでの時間が長くなる可能性があります。

デフォルト値は True です。

mirror-discovery

このプロパティーは、mDNS および DNS-SD を使用してリンクローカル内容ミラーを検出するようにパッケージクライアントに命令します。このプロパティーを true に設定すると、パッケージクライアントはミラーを動的に検出し、そのミラーからパッケージ内容のダウンロードを試みます。mDNS を介してその内容を通知するミラーの実行方法については、pkg.depotd(8) のマニュアルページを参照してください。

デフォルト値は False です。

send-uuid

ネットワーク操作の実行時にこのイメージの汎用一意識別子 (UUID) を送信します。ユーザーはこのオプションを無効にできますが、一部のネットワークリポジトリは UUID を供給しないパッケージクライアントとのやり取りを拒否する場合があります。

デフォルト値は True です。

trust-anchor-directory

このプロパティーの値は、イメージのトラストアンカーを含むディレクトリのパス名です。このパスはイメージのルートに相対的です。

デフォルト値は etc/certs/CA です。

use-system-repo

このプロパティーではシステムリポジトリを、イメージおよびパブリッシャーの構成のソースとして、および提供されたパブリッシャーと通信するためのプロキシとしてイメージで使用するべきかどうかを指定します。システムリポジトリについては、pkg.sysrepo(8) のマニュアルページを参照してください。

デフォルト値は ignore です。

イメージのプロパティーの設定

イメージプロパティー設定を表示するには pkg property コマンドを使用します。イメージプロパティーを構成するには、set-propertyadd-property-valueremove-property-value、および unset-property サブコマンドを使用します。

イメージプロパティーの値の表示

イメージのプロパティーを表示するには、pkg property コマンドを使用します。

$ pkg property
PROPERTY                       VALUE
be-policy                      default
ca-path                        /etc/openssl/certs
check-certificate-revocation   False
flush-content-cache-on-success False
mirror-discovery               False
preferred-authority            solaris
publisher-search-order         ['solaris', 'isvpub']
send-uuid                      True
signature-policy               verify
signature-required-names       []
trust-anchor-directory         etc/certs/CA
use-system-repo                False

publisher-search-order プロパティーを設定するために、pkg set-publisher コマンドの検索順序オプションを使用する場合もあります。パブリッシャーの検索順序およびスティッキネスの設定を参照してください。

イメージプロパティーの値の設定

イメージプロパティーの値を設定したり、プロパティーを追加して設定したりするには、pkg set-property コマンドを使用します。

次の例では、mirror-discovery プロパティーの値を設定します。

$ pkg set-property mirror-discovery true
$ pkg property -H mirror-discovery
mirror-discovery True

イメージプロパティーの値のリセット

指定したプロパティーの値をそのデフォルト値にリセットするには、pkg unset-property コマンドを使用します。

$ pkg unset-property mirror-discovery
$ pkg property -H mirror-discovery
mirror-discovery False