更新する前に、次の手順を実行してください。
ライセンスを確認します。ライセンス要件の表示は、そのライセンスに同意する必要があるパッケージを一覧表示する方法について説明します。これらのパッケージをインストールまたは更新するには、--accept オプションを指定しなければならない場合があります。パッケージライセンスの表示は、ライセンステキストを表示する方法について説明しています。
リリースノートを読みます。Oracle Solaris リリースのリリースノートは、docs.oracle.com にあります。SRU のリリースノートは、support.oracle.com にあります。
構成済みのパブリッシャーの起点から使用可能なパッケージバージョンを確認します。使用可能なバージョンのチェックを参照してください。パブリッシャーに対して pkg refresh コマンドを実行するか、パブリッシャーの特定の場所で pkgrepo refresh コマンドを実行することが必要な場合もあります。独自のリポジトリを作成する場合は、部分的なリポジトリを作成しないでください。Oracle Solaris 12 パッケージリポジトリのコピーと作成の説明に従って、完全なリポジトリを作成してください。
-nv オプションを指定して pkg update コマンドを使用することで、実際には更新を実行せずに、更新されるパッケージのリストを表示します。更新操作のプレビューを参照してください。
更新の際は、新しいブート環境の指定に記載されているように、--be-name または --require-new-be オプションを使用して、現在のブート環境ではなく新規ブート環境で変更を行います。
更新が失敗した場合は、パッケージのインストールおよび更新のトラブルシューティングを確認してください。
更新後に、インストールされているパッケージを確認します。
$ beadm mount name-of-new-BE /mnt
更新で必要な内容が取得されていることを確認します。
$ pkg -R /mnt list -v entire
パッケージを検証します。
$ pkg -R /mnt verify -v
エラーが報告されている場合は、pkg fix コマンドを使用して、エラーが修正されていることを確認します。
$ pkg -R /mnt fix -v $ pkg -R /mnt verify -v
BE を必ずアンマウントしてください。
$ beadm unmount name-of-new-BE
パッケージの検証と検証エラーの修正も参照してください。
更新済みまたはインストール済みのパッケージでリリースノートが報告されているかどうかを確認するには、pkg history コマンドで -N オプションを使用します。
サポート更新の適用の説明に従って、すべてのサポート更新を適用してシステムを常に最新にします。「Oracle Solaris バイナリおよびソース保証プログラム」(ドキュメント ID 1391762.1) は、リリースの境界を越える更新のリスクが低いことを保証します。
ほとんどの更新エラーの原因は不完全なパッケージリポジトリです。Oracle Solaris 12 パッケージリポジトリのコピーと作成 の Best Practices for Creating and Using Local IPS Package Repositoriesを参照してください。更新されるシステムは、Oracle Solaris 12 パッケージリポジトリのコピーと作成 の Minimal Required Repositoryに記載されているパッケージバージョンに少なくともアクセスできる必要があります。
システムは、システムに現在インストールされているパッケージを提供するパッケージリポジトリにアクセスできる必要があります。たとえば、Oracle Solaris 11.3 から Oracle Solaris 11.4 に更新する場合は、インストールされている Oracle Solaris 11.3 パッケージと目的の Oracle Solaris 11.4 パッケージの両方へのアクセスが solaris パブリッシャーに構成されている必要があります。パッケージが ha-cluster や solarisstudio などの別のパブリッシャーからインストールされている場合は、それらのパブリッシャーにも現在インストールされているパッケージに加えて目的の新しいパッケージへのアクセスが構成されている必要があります。
オペレーティングシステムのリリースを更新する場合は、pkg:/entire 制約パッケージの入手可能なバージョンを確認します。
システムにインストールされているバージョンを判別するには、次のコマンドを使用します。
$ pkg list entire
構成済みのパブリッシャーから利用できるバージョンを判別するには、次のコマンドを使用します。
$ pkg list -af entire
このコマンドからの出力では、Oracle Solaris 12 パッケージリポジトリのコピーと作成 の Minimal Required Repositoryに記載されているように、現在インストール済みのリリース、更新後のリリース、および必要な中間リリースが表示される必要があります。
pkg:/entire の現在インストール済みのバージョンが構成済みパブリッシャーからまだ利用可能であることを確認するには、次の例に示すように、有効化された特定のパブリッシャーの場所で特定のバージョンを確認してください。
$ pkgrepo -s /var/share/pkgrepos/solaris list entire@0.5.11-0.175.3.22.0.3.0
次のコマンドは、Oracle Solaris 11.3 SRU 22 がインストールされており、Oracle Solaris 11.3 SRU 25 および 28 が現在構成されている solaris パブリッシャーから入手可能であることを示しています。FMRI 内のフィールドについては、障害管理リソース識別子を参照してください。
$ pkg list -af entire@0.5.11-0.175.3 NAME (PUBLISHER) VERSION IFO entire 0.5.11-0.175.3.28.0.4.0 --- entire 0.5.11-0.175.3.25.0.3.0 --- entire 0.5.11-0.175.3.22.0.3.0 i--
これらの中に必要なバージョンがない場合、または更新を完了するために必要な一部のリリースが欠落している場合は、solaris パブリッシャーの起点を別のパッケージリポジトリの場所に設定するか場所を追加する必要があります。システムに構成されているパブリッシャーを確認するには、次のコマンドを使用します。-n オプションは有効化されているパブリッシャーのみ表示することを指定します。
$ pkg publisher -n
solaris などの単一パブリッシャーは複数のリポジトリの場所を持つことができます。パブリッシャーに複数のリポジトリの場所が構成されている場合、パブリッシャーの起点の有効化および無効化に記載されているように、-F オプションを使用して、すべての場所が有効かどうかを確認します。更新を完了するために必要な一部のパッケージバージョンが別のパッケージリポジトリにある場合、パブリッシャーの起点の追加と変更に記載されているように、pkg set-publisher コマンドに –g オプションを使用することによって、それらのパッケージリポジトリの場所をパブリッシャーに追加します。
すべてのパブリッシャーリポジトリの場所がサイトにローカルである場合、それらのリポジトリにコンテンツを追加することが必要な場合もあります。手順については、Oracle Solaris 12 パッケージリポジトリのコピーと作成を参照してください。
デフォルトでは、各パッケージは、現在インストールされているバージョンを提供したパブリッシャーから更新されます。パブリッシャーのスティッキネスと検索順を指定することにより、パッケージを提供するパブリッシャーを制御できます。パッケージパブリッシャーの追加、変更、削除を参照してください。
パブリッシャーリポジトリの場所の 1 つが Oracle Solaris サポートリポジトリまたはその他のセキュアリポジトリの場合、キーおよび証明書が有効であることを確認します。
リポジトリへのシステムのアクセスがファイアウォールまたはプロキシによって妨げられていないことを確認します。
詳細は、パブリッシャーの構成を参照してください。
Oracle Solaris パッケージリポジトリに、そのリポジトリ内の pkg:/entire の最新のバージョンよりも新しいオープンソースソフトウェアのバージョンが含まれている場合があります。制約パッケージによって指定されたバージョン制約の緩和に記載されているように、version-lock ファセットをロック解除した場合、これらの新しいバージョンをインストールできる可能性があります。ほかのソフトウェアが古いバージョンに依存しているという理由で、古いバージョンをアンインストールできない場合があります。多くの場合、複数バージョンのソフトウェアをシステムに同時にインストールできます。そのような場合、デフォルトバージョンは、デフォルトのアプリケーション実装の指定に記載されているようにメディエータ設定によって判別されます。特定のバージョンが必要な場合、スクリプトまたはその他のソフトウェア内で、メディエーションされたリンクではなくフルパスを指定します。
Oracle Solaris のこのリリースで利用可能な特定の FOSS バージョンは、Oracle Solaris 11.4 で使用可能なフリーウェア の Oracle Solaris 11.4 Bundled Software Updatesを参照してください。
pkg update コマンドに次のオプションを使用します。
実際に操作を行わずに操作の結果を表示するには、プレビューオプション (-n) を使用します。-n オプションなしで更新を実行する前に、この出力を確認してください。
更新、削除、および追加されるパッケージとそのバージョン、変更されるメディエータ、再開されるサービス、変更される編集可能ファイル、新しい BE が作成されるかどうかについて表示するには、詳細オプション (-v) を使用します。更新に成功しない場合、詳細オプションは問題の診断に役立つ多くの情報を表示します。さらに多くの情報を取得するには、-vv を使用します。
必要な結果を指定します。更新に成功しない場合、更新するパッケージのバージョンについて指定する情報が多くなるほど問題の診断に役立つ情報が多く表示されます。
次のコマンドでは、これらのオプションの使用が示されています。
$ pkg update -nv entire@11.4-11.4.0.0.1.12.0
更新操作に成功しない場合、受け取るエラーメッセージに応じて次のいくつかのステップを検討してください。パッケージのインストールおよび更新のトラブルシューティングも参照してください。
pkg freeze コマンドを使用して、更新の妨げになっている可能性がある凍結されたパッケージがシステムに存在するかどうかを確認します。
pkg facet コマンドを使用して、いずれかのパッケージでバージョン制約がロック解除されているかどうかを確認します。必要な更新を完了するにはその制約を再ロックすることが必要な場合があります。バージョンロックを設定する行為によって、システム更新が可能になります。
更新を制約している IDR がインストールされているかどうかを確認します。
パブリッシャーリポジトリの場所で pkgrepo verify を実行します。必要な依存関係が欠落しているか、間違った権限が設定されている可能性があります。
更新しようとしているシステムで pkg verify を実行します。パッケージ化された内容が、システム上でサポートされない方法で変更されている可能性があります。たとえば、IPS パッケージによって提供されたリンクをディレクトリまたはファイルになるようにだれかが変更した場合、システム更新の妨げとなる可能性があります。
非大域ゾーンにあるソフトウェアが、親の大域ゾーンにあるソフトウェアと同じリリースであることが必要な場合、非大域ゾーンにあるソフトウェアは大域ゾーンを更新したときに自動的に更新されます。非大域ゾーンにあるソフトウェアが、親の大域ゾーンにあるソフトウェアと同じリリースでなくてもよい場合、非大域ゾーンにあるソフトウェアは別途更新する必要があります。
新しい BE を要求したか、新しい BE で更新を行う必要がある場合、更新出力の最後に次のメッセージが表示されます。
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 がアクティブになるため、次回システムをブートしたときにはこの新しい環境がデフォルトでブートされます。次回のリブートで新規 BE をデフォルトにしないようにする場合、pkg update コマンドで --no-be-activate オプションを使用します。beadm activate コマンドを使用して、デフォルトブート BE をいつでも変更できます。ブート環境オプションの詳細については、ブート環境オプションを参照してください。
新規 BE に問題がなければ、古い BE を破棄してかまいません。