次の表は、pkg install と pkg update コマンドの類似点と相違点を示します。
|
インストールおよび更新時に、preserve 属性と overlay 属性を持つファイルがどのように処理されるかについては、pkg(5) のマニュアルページの file アクションのこれらの属性を参照してください。
パッケージのインストールまたは更新後に、インストールされているパッケージを検証します。Verifying Packages and Fixing Verification Errorsを参照してください。
このセクションでは、複数のインストール関連のコマンドに共通するオプションについて説明します。メディエータの設定または設定解除、バリアントまたはファセットの変更、パッケージの修正、およびファイルを元に戻す操作は、パッケージのインストール、更新、またはアンインストールも伴うことがあります。
パッケージをインストール、更新、またはアンインストールした場合に、新しい BE またはバックアップ BE が自動的に作成されることがあります。BE に関するイメージポリシーの制約内で、下に示すオプションを使用して、新しい BE とバックアップ BE の作成を制御できます。新しい BE とバックアップ BE について、および BE に関するイメージポリシーの設定方法については、Boot Environment Policy Image Propertiesを参照してください。
次の BE オプションを使用して、新しい BE またはバックアップ BE を作成するかどうかを強制したり、BE にカスタム名を指定したり、新しい BE をアクティブにしないように指定したりします。これらのオプションは、install、exact-install、uninstall、update、revert、set-mediator、unset-mediator、change-variant、および change-facet サブコマンドで使用できます。
BE が作成される場合に、それを次回ブート時にアクティブ BE として設定しません。
コマンド出力で、新しいブート環境が作成されたことを示すメッセージに注意してください。新しいブート環境を作成してアクティブにすると、--no-be-activate オプションを指定しない場合、その BE が次回のリブート時にデフォルトでブートされます。
アクティブ BE を表示および変更するには、beadm(1M) コマンドを使用します。
バックアップ BE を作成しません。
新しい BE が作成されない場合に、バックアップ BE を作成します。このオプションを指定しないと、イメージポリシーに基づいてバックアップ BE が作成されます。バックアップ BE が自動的に作成される状況の説明については、Boot Environment Policy Image Propertiesを参照してください。
バックアップ BE が作成される場合に、デフォルトの名前ではなく、name という名前を付けます。--backup-be-name を使用すると --require-backup-be が暗黙的に指定されます。
新しい BE を作成しません。新しい BE が必要な場合、インストール、更新、アンインストール、または元に戻す操作は実行されません。
新しい BE を作成します。このオプションを指定しないと、イメージポリシーに基づいて BE が作成されます。BE が自動的に作成される状況の説明については、Boot Environment Policy Image Propertiesを参照してください。このオプションを --require-backup-be と組み合わせることはできません。
BE が作成される場合に、デフォルトの名前ではなく、name という名前を付けます。--be-name を使用すると --require-new-be が暗黙的に指定されます。このオプションを使用することは、操作を行うためのもっとも安全な方法です
Working with Non-Global Zonesで説明されているように、大域ゾーンで実行されるパッケージのインストール、除去、および更新の一部のみが、非大域ゾーンに自動的に影響します。-r オプションは、大域ゾーンに入力した pkg 操作と同じ操作を非大域ゾーンで実行し、-r を使用しなかった場合に影響を及ぼすよりもさらに多くのパッケージに影響を及ぼすことになります。これらのオプションは、install、uninstall、update、change-variant、および change-facet サブコマンドで使用できます。
この操作を大域ゾーンで実行し、インストール済みの solaris ブランドのすべての非大域ゾーンでも実行します。非大域ゾーンに対する影響は、各非大域ゾーンにログインしてコマンドを直接実行することと似ています。
このオプションを指定せずに pkg コマンドを大域ゾーンで実行すると、Working with Non-Global Zonesに記載されているように、非大域ゾーンは大域ゾーンとの互換性を維持するために必要な範囲で変更されます。このオプションを指定すると、pkg 操作は -z および -Z オプションによって制限される場合を除き、インストール済みのすべての非大域ゾーンに適用されます。-z オプションおよび -Z オプションによって除外されたゾーンは、大域ゾーンとの同期を維持するための更新が必要であれば、変更されることもあります。
指定された非大域ゾーンでのみこの操作を実行します。-z オプションは複数回指定できます。-z オプションは、-r オプションと同時に指定した場合のみ使用できます。-z オプションは -Z オプションと一緒に使用できません。
指定されたゾーンを除くすべての非大域ゾーンでこの操作を実行します。-Z オプションは複数回指定できます。-Z オプションは、-r オプションと同時に指定した場合のみ使用できます。-Z オプションは -z オプションと一緒に使用できません。
次のオプションは、大域ゾーンと同時に更新する非大域ゾーンの数を指定します。このオプションは、install、exact-install、uninstall、update、change-variant、および change-facet サブコマンドで使用できます。
n 個までのインストール済みの solaris ブランドの非大域ゾーンを大域ゾーンと並行して更新します。n が 0 または負の数値の場合、すべての非大域ゾーンが大域ゾーンと同時に更新されます。
環境変数 PKG_CONCURRENCY も値 n に設定できます。-C オプションは PKG_CONCURRENCY 設定をオーバーライドします。-C オプションが指定された場合、PKG_CONCURRENCY は無視されます。
パッケージがインストールまたは更新されるとき、指定されたサービスの再開またはリフレッシュなどの SMF サービスアクションがパッケージに指定されることがあります。多数のパッケージを操作している場合、すべてのサービスアクションが終了する前に pkg 操作が終了することがあります。このとき、関連付けられたサービスがまだ利用できないという理由で、新しくインストールされたソフトウェアを使用できない場合があります。
この問題を回避するには、次のいずれかのオプションを使用して、SMF アクチュエータを pkg コマンドと同期させて実行します。これらのオプションは、install、uninstall、update、change-variant、および change-facet サブコマンドで使用できます。
このオプションを指定した場合、pkg コマンドは、pkg が呼び出されたゾーン (大域ゾーンまたは非大域ゾーン) 内ですべての SMF アクチュエータが完了するまで返されません。
このオプションを指定した場合、pkg コマンドは、すべての SMF アクチュエータが完了するか、timeout 期間が終了するか、いずれか短い方が終了するまで返されません。指定された timeout (秒単位) までにアクチュエータが完了しない場合、pkg コマンドは動作を続行し、リターンコード 8 で終了します。
パッケージをインストールまたは更新する前に、ライセンスを受諾することが必要な場合があります。必要なライセンスを表示して受諾するには、次のオプションを使用します。これらのオプションは、install、exact-install、update、fix、change-variant、および change-facet サブコマンドで使用できます。
この操作の一環としてインストールまたは更新されるパッケージのすべてのライセンスを表示するには、--licenses オプションを使用します。この操作を続行するために受諾する必要があるライセンスだけでなく、すべてのパッケージのライセンスが表示されます。続行するために受諾する必要があるライセンスは、--licenses オプションを指定しなくても表示されます。ほかの操作を開始せずにパッケージのライセンスを表示するには、Displaying Package Licensesに記載されているように pkg info コマンドを使用します。同意する必要があるライセンスを一覧表示するには、Displaying License Requirementsに記載されているように pkg contents コマンドを使用します。
更新またはインストールされるパッケージのライセンス条項に同意することを示す場合は、--accept オプションを使用します。このオプションを指定せず、パッケージのライセンスに同意が必要になった場合、必要なライセンスが表示されてインストール操作は失敗します。
デフォルトでは、パッケージをインストール、更新、またはアンインストールしたときに検索インデックスが更新されます。これらの操作が正しく終了したあとに検索インデックスを更新しない場合は、--no-index オプションを使用します。このオプションを指定すると、多数のパッケージをインストールする場合に、いくらか時間を節約できます。すべてのインストール、更新、およびアンインストール操作を完了したら、pkg refresh を使用して、使用可能なパッケージのリストと、指定された各パブリッシャーのパブリッシャーメタデータを更新できます。パブリッシャーを指定しない場合、すべてのパブリッシャーを対象にリフレッシュが実行されます。このオプションは、install、exact-install、uninstall、および update サブコマンドで使用できます。
--no-refresh オプションを指定した場合、使用可能なパッケージやその他のメタデータの最新のリストを取得するために、イメージのパブリッシャーのリポジトリに接続しません。このオプションは、install、exact-install、および update サブコマンドで使用できます。
デフォルトで、パッケージを提供したパブリッシャーの検索順序で先頭のパブリッシャーから、イメージの残りの部分と互換性のあるパッケージの最新バージョンがインストールされます。最新バージョンを明示的に要求するには、パッケージ FMRI のバージョン部分に latest を使用します。
パッケージがすでにインストールされている場合は、現在インストールされているバージョンを提供したパブリッシャーから、残りのイメージと互換性のある最新バージョンのパッケージをインストールすることによってパッケージが更新されます。
複数のパッケージが指定され、かつ指定されたパッケージのいずれかをこのイメージにインストールできない場合、指定されたパッケージは一切インストールされません。
パッケージが回避リストにある場合は、インストールすると回避リストから削除されます。回避リストについては、Avoiding Installing Some Packages in a Group Packageを参照してください。
イメージで複数のパブリッシャーが有効になっている場合は、パブリッシャーのスティッキネスと検索順序を設定したり、またはパッケージ FMRI でパブリッシャーを指定したりすることによって、パッケージを提供するパブリッシャーを制御できます。また、インストールするバージョンをパッケージ FMRI で指定することもできます。パッケージ FMRI の説明については、Fault Management Resource Identifiersを参照してください。パブリッシャーのスティッキネスと検索順序の設定については、Configuring Publishersを参照してください。
パッケージ名がパブリッシャーを指定しない場合、一致するパッケージを提供する最初のパブリッシャーがインストール元として使用されます。該当するパブリッシャーがこのイメージ内にインストール可能なパッケージのバージョンを提供しない場合、インストール操作は失敗します。このイメージにインストール可能なパッケージのバージョンを提供するパブリッシャーを確認するには、pkg list -a コマンドを使用します。
次のコマンドは、atool のインストール可能なバージョンが構成済みパブリッシャーから利用可能であるが、検索順序で最初のパブリッシャーには、このイメージにインストールできないバージョンがあることを示しています。pkg list コマンドのオプションについては、Showing Package Install State Informationを参照してください。
$ pkg list -a atool NAME (PUBLISHER) VERSION IFO atool (isvpub) 2.0 --- $ pkg list -af atool NAME (PUBLISHER) VERSION IFO atool 1.1 --- atool (isvpub) 2.0 ---
この場合、次のインストールコマンドは失敗します。パッケージシステムでは、検索順序の最初にあるパブリッシャーからパッケージ名 atool に一致するものが検索されますが、そのパッケージはインストールできません。
$ pkg install atool
このパッケージをインストールするには、次の例に示すように、より具体的なパッケージ名を指定します。
$ pkg install //isvpub/atool $ pkg install atool@2.0
実際にインストールを実行する前に、インストールされるものを確認するには、-nv オプションを使用します。エラーメッセージを受け取る場合、Troubleshooting Package Installation and Updateを参照してください。
指定したパッケージリポジトリまたはパッケージアーカイブを、パッケージデータの取得元になるイメージ内のソースのリストに一時的に追加するには、-g オプションを使用します。クライアント SSL 証明書が必要なリポジトリは、このオプションとともに使用できません。このオプションは、子イメージ (非大域ゾーン) を持つイメージでは使用できません。このイメージに非大域ゾーンがインストールされている場合は、pkg set-publisher コマンドを使用してこのパブリッシャーと起点を追加します。このオプションは複数回指定できます。
-g オプションを指定すると、パッケージの取得時に、イメージで有効になっているパブリッシャーが優先されます。
指定されたパッケージ名またはパッケージ名パターンに一致するパッケージが、イメージ内で有効になっているパブリッシャーから利用可能な場合に、その同じパブリッシャーが -g オプションで指定された場所に見つからないとき、パッケージシステムは、イメージ内で有効になっているパブリッシャーからパッケージをインストールしようとします。install または update のあとに、イメージ内で構成されていないパブリッシャーによって提供されるすべてのパッケージは、起点なしでイメージ構成に追加されます。
指定されたパッケージ名またはパッケージ名パターンに一致するパッケージが、イメージ内で有効になっているパブリッシャーから利用可能な場合に、その同じパブリッシャーが -g オプションで指定された場所にパッケージを発行しているとき、パッケージシステムは、-g オプションで指定された場所からパッケージをインストールしようとします。
次の例では、イメージ内に構成されている solaris パブリッシャーから btool パッケージが利用可能です。btool パッケージは、リポジトリの起点 http://pkg.example1.com/ の devtool パブリッシャーからも利用可能ですが、devtool パブリッシャーはイメージ内に構成されていません。イメージ内に構成されているパブリッシャーからパッケージが利用可能な場合は、構成済みのパブリッシャーが -g のソースより優先されるため、コマンドは solaris パブリッシャーからパッケージをインストールしようとします。
$ pkg install -g http://pkg.example1.com/ btool
devtool パブリッシャーからパッケージをインストールするには、パッケージ名にパブリッシャーの名前を指定します。
$ pkg install -g http://pkg.example1.com/ //devtool/btool
次の例で、isvpub は起点 /var/share/pkgrepos/isvrepo でイメージ内に構成されているパブリッシャーです。isvpub パブリッシャーは http://pkg.example2.com/ にあるリポジトリにもパッケージを発行していますが、イメージ内で構成されているこのパブリッシャーにその起点は指定されていません。同じパブリッシャーが両方の場所にパッケージを提供しているため、次のコマンドは http://pkg.example2.com/ の場所からパッケージをインストールしようとします。
$ pkg install -g http://pkg.example2.com/ atool
Adding, Modifying, or Removing Package Publishersにあるパブリッシャーのスティッキネスの説明も参照してください。
新しい BE は指定したインストール、アンインストール、または更新の変更が適用された現在の BE のクローンになります。現在の BE は変更されません。システムは自動的に再起動されません。システムの次回の再ブート時に、新しい BE がデフォルトのブート選択肢になります。現在の BE も引き続きブートに使用できます。
--no-be-activate オプションを指定した場合、次回のリブート時に、新しい BE がデフォルトのブート選択肢になりません。
新規 BE の作成を強制するか、新規 BE がデフォルトで作成される場合に新規 BE にわかりやすい名前を付けるには、--be-name オプションを使用します。
Previewing an Operationの例では、group/feature/amp パッケージをインストールするとき、新規 BE がデフォルトで作成されないことを示しました。次の出力の一部では、--be-name オプションが指定されているため、新規 BE が作成されます。
$ pkg install -v --be-name s11amp group/feature/amp Packages to install: 6 Mediators to change: 1 Estimated space available: 22.70 GB Estimated space to be consumed: 751.08 MB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: No
インストール操作の終わりに次のメッセージが表示されます。
A clone of s11 exists and has been updated and activated. On the next boot the Boot Environment s11amp will be mounted on '/'. Reboot when ready to switch to this updated BE.
pkg list コマンドは、現在の BE に group/feature/amp パッケージがインストールされていないため、group/feature/amp パッケージがインストールされていないことを報告します。group/feature/amp パッケージは新しい s11amp BE にインストールされます。
$ pkg list group/feature/amp pkg list: no packages matching 'group/feature/amp' installed
beadm list コマンドを使用して、システムに s11amp という新しいアクティブな BE があることを確認します。「N」で示された BE は現在ブートされています。「R」で示された BE はリブート時のデフォルトです。リブート時のデフォルトの BE を変更するには、beadm activate コマンドを使用します。
$ beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- s11 N / 30.92M static 2014-03-05 08:51 s11amp R - 25.75G static 2014-03-26 10:45
新しい BE に group/feature/amp パッケージがインストールされていることを確認します。新規 BE をマウントし、-R オプションを使用して、マウントされた BE 上で操作を行います。I 列の「i」は、group/feature/amp パッケージがインストールされていることを示します。
$ beadm mount s11amp /mnt $ beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- s11 N / 30.92M static 2014-03-05 08:51 s11amp R /mnt 25.75G static 2014-03-26 10:45 $ pkg -R /mnt list group/feature/amp NAME (PUBLISHER) VERSION IFO group/feature/amp 0.5.11-0.175.2.0.0.33.0 i--
s11amp BE を必ずアンマウントしてください。
$ beadm unmount s11amp
指定したパッケージがインストールされないようにするには、pkg install コマンドの --reject オプションを使用します。一致するパッケージがすでにインストールされている場合、それらはこの操作の一環として削除されます。
グループ依存関係である拒否されたパッケージは、回避リストに配置されます。回避リストについては、Avoiding Installing Some Packages in a Group Packageを参照してください。
次のコマンド例は、developer-gnu パッケージと、その cvs 依存関係以外のすべての依存関係をインストールします。
$ pkg install --reject developer/versioning/cvs group/feature/developer-gnu
install または update サブコマンドを使用して、インストールされているパッケージを、現在インストールされているバージョンを提供したパブリッシャーから、残りのイメージと互換性のあるパッケージの最新バージョンに更新できます。まだインストールされていないパッケージが意図せずにインストールされることを避けるには、pkg update コマンドを使用して、パッケージを更新します。
イメージで複数のパブリッシャーが有効になっている場合は、パブリッシャーのスティッキネスと検索順序を設定したり、またはパッケージ FMRI でパブリッシャーを指定したりすることによって、パッケージを提供するパブリッシャーを制御できます。また、インストールするバージョンをパッケージ FMRI で指定することもできます。パッケージの最新バージョンを明示的に要求するには、パッケージ名のバージョン部分に latest を使用します。パッケージ FMRI の説明については、Fault Management Resource Identifiersを参照してください。パブリッシャーのスティッキネスと検索順序の設定については、Configuring Publishersを参照してください。
更新されるパッケージの一部となる保持される構成ファイルは、ファイルの preserve 属性の値と、ファイルが変更されたかどうかに応じて、インストール、保存、または名前変更されます。パッケージの更新中にファイルが保持されるしくみについては、pkg(5) のマニュアルページのファイルアクションに関するセクションで preserve 属性を参照してください。
パブリッシャーのスティッキネスと検索順序および -g オプションの使用については、Installing a New Packageを参照してください。
現在インストールされていないパッケージの更新を試行すると、pkg update 操作はパッケージを更新せずに終了します。インストールされていないパッケージを無視することで、更新する一部のパッケージが現在インストールされていない場合に pkg update が失敗するのを回避するには、--ignore-missing オプションを使用します。
パッケージ FMRI またはパターンが指定されていないとき、または指定されたパターンがアスタリスク文字 (*) である場合の pkg update コマンドの特殊な動作については、Updating or Upgrading an Oracle Solaris Imageを参照してください。
pkg update コマンドを使用して、パッケージのアップグレードだけでなくダウングレードを行うこともできます。パッケージをダウングレードするには、現在インストールされているよりも古いバージョンのパッケージ FMRI を指定します。パッケージ FMRI の説明については、Fault Management Resource Identifiersを参照してください。インストールされているパッケージのバージョンと、構成されているパブリッシャーから使用可能なバージョンを表示するには、pkg list コマンドを使用します。
ダウングレードされるパッケージの一部となる保持される構成ファイルは、ファイルの preserve 属性の値と、ファイルが変更されたかどうかに応じてインストールまたは名前変更されます。パッケージのダウングレード中にファイルが保持されるしくみについては、pkg(5) のマニュアルページのファイルアクションに関するセクションで preserve 属性を参照してください。
-g オプションの使用については、Installing a New Packageを参照してください。