ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 ソフトウェアパッケージの追加および更新 Oracle Solaris 11.1 Information Library (日本語) |
使用可能な更新があるすべてのインストール済みパッケージを、インストール済みパッケージの依存関係および発行元の構成によってシステムに課せられた制約で許可される最新バージョンに更新するには、pkg-fmri を指定せずに、または pkg-fmri としてアスタリスク文字 (*) を付けて、pkg update コマンドを使用します。現在のイメージに非大域ゾーンがマウントされている場合は、これらのゾーンも更新されます。「複数の非大域ゾーンの同時更新」を参照してください。
/usr/bin/pkg update [-fnvq] [-C n] [-g path_or_uri ...] [--accept] [--licenses] [--no-index] [--no-refresh] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] [--reject pkg_fmri_pattern ...] [pkg_fmri_pattern ...]
pkg update コマンドを使用する前に、構成済み発行元起点から入手可能なバージョンを確認し、実際に更新を実行せずに -nv オプションを使用して更新されるパッケージの一覧を表示します。
オペレーティングシステムのリリースを更新する場合は、entire incorporation パッケージの入手可能なバージョンを確認します。次のコマンドは、Oracle Solaris 11 11/11 SRU 10 がインストールされており、Oracle Solaris 11 11/11 SRU 11、12、および 13 が入手可能であり、さらに現在構成されている solaris 発行元から Oracle Solaris 11.1 が入手可能であることを示しています。FMRI 内のフィールドについては、「障害管理リソース識別子」を参照してください。
$ pkg list -af entire NAME (PUBLISHER) VERSION IFO entire 0.5.11,5.11-0.175.1.0.0.24.2 --- entire 0.5.11,5.11-0.175.0.13.0.4.0 --- entire 0.5.11,5.11-0.175.0.12.0.4.0 --- entire 0.5.11,5.11-0.175.0.11.0.4.1 --- entire 0.5.11,5.11-0.175.0.10.0.5.0 i--
これらの中に必要なバージョンがない場合は、solaris 発行元起点を別のパッケージリポジトリの場所に設定する必要があります。
デフォルトでは、各パッケージは、現在インストールされているバージョンを提供した発行元から更新されます。発行元のスティッキネスと検索順を指定することにより、パッケージを提供する発行元を制御することができます。「パッケージ発行元の追加、変更、削除」を参照してください。
次のコマンドは、更新によって実際にどのパッケージがインストールされるか (存在する場合) を示しています。-v オプションが指定されているため、このコマンドは、完全な FMRI (複数のバージョンを含む) の 627 のすべてのパッケージが更新され、3 つのパッケージが削除され、1 つの新しいパッケージがインストールされることを示しています。この例では、その出力のほとんどが省略され、entire パッケージのみが示されています。-n オプションが指定されているため、実際に更新は実行されません。-n オプションなしで更新を実行する前に、この出力を確認してください。
$ pfexec pkg update -nv Packages to remove: 3 Packages to install: 1 Packages to update: 627 Estimated space available: 48.43 GB Estimated space to be consumed: 3.14 GB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: Yes Changed packages: solaris ... entire 0.5.11,5.11-0.175.0.10.0.5.0:20120803T182627Z -> 0.5.11,5.11-0.175.1.0.0.24.2:20120919T190135Z ...
前の例は、Oracle Solaris 11.1 の entire incorporation パッケージがインストールされることを示しています。それに応じて、entire incorporation に属しているすべてのインストール済みパッケージが更新されます。パッケージ FMRI が指定されなかったため、entire incorporation に属していないインストール済みパッケージもすべて更新されます。すべてのインストール済みパッケージが、システムの制約で許可された最新バージョンに更新されます。この制約は、インストール済みパッケージの依存関係および発行元の構成によってシステムに課せられるものです。更新されたインストール済みパッケージで新しい依存関係が指定されている場合は、インストール済みパッケージが削除されたり、新しいパッケージがインストールされたりする可能性があります。
前の例は、-n オプションなしでこのコマンドを再実行した場合、この更新で新しい BE が作成されることを示しています。-n オプションなしでこのコマンドを実行した場合は、更新出力の最後に次のメッセージが表示されます。
A clone of currentBE exists and has been updated and activated. On the next boot the Boot Environment newBE will be mounted on '/'. Reboot when ready to switch to this updated BE.
現在の BE は変更されません。すべての変更は新しい BE で行われます。
新しい BE を明示的に指定することは、インストールまたは更新のもっとも安全な方法です。BE が作成される状況については、「ブート環境ポリシーイメージのプロパティー」を参照してください。--be-name オプションを使用すると、新しい BE にわかりやすい名前を付けることもできます。新しい BE がアクティブになるため、次回システムをブートしたときにはこの新しい環境がデフォルトでブートされます。この動作を希望しない場合は、pkg update コマンドで --no-be-activate オプションを使用します。そのあと、新しい環境を使用する準備ができたら、beadm activate コマンドを使用して新しい BE をアクティブにします。
許可される最新バージョンに更新したくない場合は、pkg update コマンドでパッケージ名 (バージョン文字列の部分を含む) を指定できます。次の例は、新しいバージョンが許可される場合でも、Oracle Solaris 11 11/11 SRU 13 に更新するために entire incorporation のバージョンを指定する方法を示しています。必ず再度 -nv オプションを使用し、再度出力を確認してください。
$ pfexec pkg update -nv entire@0.5.11,5.11-0.175.0.13 Packages to remove: 2 Packages to install: 1 Packages to update: 486 Estimated space available: 48.39 GB Estimated space to be consumed: 2.50 GB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: Yes Changed packages: solaris ... entire 0.5.11,5.11-0.175.0.10.0.5.0:20120803T182627Z -> 0.5.11,5.11-0.175.0.13.0.4.0:20121106T194623Z ...
一部のインストール済みパッケージが entire incorporation に属していない場合があります。これらのパッケージは個別にインストールされた可能性があるため、entire incorporation だけを更新しても更新されません。これらのパッケージを同じ pkg update コマンドに追加できます。
任意の Oracle Solaris 11 11/11 バージョンへの更新は許可するが、Oracle Solaris 11.1 への更新を許可しない場合は、次のコマンドに示すように entire incorporation を凍結できます。0.175.0 を指定すると、entire パッケージを 0.175.1 にではなく、たとえば 0.175.0.13 に更新できることを示します。
$ pfexec pkg freeze -c "Keep this image at 11 11/11." entire@0.5.11,5.11-0.175.0 entire was frozen at 0.5.11,5.11-0.175.0 $ pkg freeze NAME VERSION DATE COMMENT entire 0.5.11,5.11-0.175.0 30 Jan 2013 15:50:01 PST Keep this image at 11 11/11. $ pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11,5.11-0.175.0.10.0.5.0 if-
パッケージの凍結の詳細は、「指定したバージョンへのパッケージのロック」を参照してください。
インストールまたは更新できるバージョンを制御するための別の方法として、独自のローカル IPS パッケージリポジトリを指定し、そのリポジトリの内容を制御します。たとえば、独自のリポジトリには Oracle Solaris 11.1 パッケージを除く、Oracle Solaris 11 11/11 のすべてのサポート更新を含めることができます。
独自のリポジトリを作成する場合は、必ず solaris 発行元起点を更新してください。
詳細は、『Oracle Solaris 11.1 パッケージリポジトリのコピーおよび作成』を参照してください。
オペレーティングシステムのリリースをダウングレードするには、ダウングレードするバージョンより古い BE にブートし、そこからアップグレードします。たとえば、Oracle Solaris 11 11/11 SRU 10 から Oracle Solaris 11 11/11 SRU 13 に更新したあとで、SRU 12 イメージが必要なことがわかった場合は、SRU 10 BE にリブートし、そこから SRU 12 に更新します。
インストールされているすべてのパッケージを更新する場合に、-f オプションを指定すると、クライアントの最新状態チェックが実行されません。
指定したパッケージリポジトリまたはパッケージアーカイブを、パッケージデータの取得元になるイメージ内のソースのリストに一時的に追加するには、-g オプションを使用します。-g オプションの効果の詳細と例については、「新しいパッケージのインストール」を参照してください。
大域ゾーンと同時に n 個の非大域ゾーンを更新するには、-C オプションを使用します。例については、「複数の非大域ゾーンの同時更新」を参照してください。
更新されるパッケージのライセンス条項に同意することを示す場合は、--accept オプションを使用します。このオプションを指定しないと、パッケージのライセンスに同意が必要になった場合、更新操作は失敗します。この操作の一環として更新されるパッケージのすべてのライセンスを表示するには、--licenses オプションを使用します。
-no-refresh オプションを指定した場合、使用可能なパッケージやその他のメタデータの最新のリストを取得するために、イメージの発行元のリポジトリに接続しません。
--no-index オプションを指定すると、操作の正常終了後に、検索インデックスが更新されません。このオプションを指定すると、多数のパッケージをインストールする場合に、いくらか時間を節約できます。更新操作が終了したら、pkg refresh を使用して、使用可能なパッケージと、指定した各発行元の発行元メタデータのリストを更新できます。発行元を指定しない場合、すべての発行元を対象にリフレッシュが実行されます。新しい BE が作成された場合、新しい BE でこの発行元のリフレッシュを実行します。