この付録では、パッケージをインストールまたは更新する際に見られることがある一部のエラーを処理する方法を示します。この付録では、パフォーマンスを向上し、格納されるメタデータを最小化するためのヒントも示します。
インストールするパッケージが構成済みのパブリッシャーから入手可能で、このイメージにインストールできるかどうかを確認します。インストール済みバージョンの pkg:/entire と、このイメージに構成されたパブリッシャーの起点の情報が必要です。pkg:/entire パッケージの更新が必要な場合もあります。パブリッシャーの起点の変更が必要な場合もあります。
パッケージのインストールにおけるほとんどすべての問題について、次の 2 つの確認を最初に行う必要があります。
インストールされている pkg:/entire incorporation パッケージのバージョンを確認します。
パッケージパブリッシャーの起点を確認します。
必要なパッケージが構成済みのパブリッシャーから入手可能であることが判別できたら、インストールの進捗に応じて次のステップを使用します。
インストールまたは更新を行うときは常に -nv オプションを使用して、行われる変更内容 (どのパッケージのどのバージョンがインストールまたは更新されるのかや、新しい BE が作成されるかどうかなど) を確認してください。-v オプションは、この特定のインストールまたは更新操作に適用されるリリースノートも示します。
さらに詳細なエラーメッセージを受け取るには、インストールするパッケージの FMRI を、バージョンおよびパブリッシャーも含めて詳しく指定します。
現在インストールされている pkg:/entire incorporation パッケージのバージョンを確認するには、pkg list コマンドを使用します。
$ pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11-0.175.2.0.0.34.0 i-- $ pkg list -Hv entire pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z i--
pkg:/entire incorporation パッケージは、使用中のサポート可能なイメージを容易に維持できるようにするために、ほかの多くのパッケージのバージョンを制約します。incorporation パッケージによって制約されるパッケージの詳細は、incorporation パッケージを参照してください。
pkg:/entire incorporation パッケージによって制約されているパッケージを直接インストールまたは更新することはできません。pkg:/entire によって制約されているパッケージをインストールまたは更新するには、pkg:/entire パッケージを更新する必要があります。詳細は、制約を満たすことができないを参照してください。場合によっては、incorporation によって制約されたパッケージの更新に示すように制約を削除できます。
パッケージパブリッシャーの起点を確認するには、pkg publisher コマンドを使用します。
$ pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://pkg.oracle.com/solaris/release/
セキュアな URI の場合、必要な鍵および証明書が正しくインストールされていることを確認し、パブリッシャーを構成するときに -k および -c オプションを使用します。
外部の場所へのプロキシがサイトで必要な場合、pkg set-publisher コマンドの --proxy オプションを使用して、そのプロキシを設定します。手順については、プロキシの指定を参照してください。
鍵、証明書、プロキシなどのパブリッシャーに関する詳細な情報を表示するには、pkg publisher publisher コマンドを使用します。
有効化されたパブリッシャーのいずれかの起点 URI にアクセスできない場合、必要な場所がアクセス可能であったとしても、インストールまたは更新操作は失敗します。場所にアクセスできない原因となっている問題を修復できない場合、pkg set-publisher -G を使用してアクセスできない起点を削除するか、pkg set-publisher --disable を使用して、そのパブリッシャーを無効にすることができます。このパブリッシャーが不要になった場合、pkg unset-publisher を使用してパブリッシャーを削除します。
パッケージパブリッシャーの起点に、必要なパッケージが含まれていることを確認します。たとえば、solaris パブリッシャーの起点が公開リリースリポジトリに設定されている場合、サポートリポジトリからのみ利用可能なバージョンにパッケージを更新することはできません。
インストール済みのパッケージを更新したり、インストール済みパッケージに依存するパッケージをインストールしたり、または非大域ゾーンをインストールしたりするには、パブリッシャーの起点として設定しているリポジトリが、イメージに現在インストールされているものと同じソフトウェアを最低限含んでいる必要があります。リポジトリには古いソフトウェアまたは新しいソフトウェアを含めることもできますが、イメージにインストールされているものと同じソフトウェアを含む必要があります。
インストール済みパッケージを確認するときは、pkgrepo list コマンドを使用し、pkg list コマンドを使用しないでください。pkg list コマンドは、インストール済みパッケージが構成済みのパブリッシャーの起点から使用可能でない場合でも、パッケージを常に表示します。
次のコマンドは、pkg:/entire のインストール済みバージョンがパブリッシャーの起点から使用できないため、指定されたリポジトリはこのイメージについて適切なパブリッシャーの起点ではないことを示しています。
$ pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11-0.175.2.0.0.34.0 i-- $ pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://pkg.oracle.com/solaris/release/ $ pkgrepo list -Hs http://pkg.oracle.com/solaris/release entire@0.5.11-0.175.2.0.0.34.0 pkgrepo list: The following pattern(s) did not match any packages: entire@0.5.11-0.175.2.0.0.34.0
必要なパッケージが一覧表示されない場合、pkgrepo refresh コマンドをふたたび実行して、pkgrepo list コマンドを再試行してください。
次のコマンドは、pkg:/entire のインストール済みバージョンが、指定されたリポジトリから使用できることを示しています。
$ pkgrepo list -Hs /export/IPSpkgrepos/Solaris entire@0.5.11-0.175.2.0.0.34.0 solaris entire 0.5.11,5.11-0.175.2.0.0.34.0:20140303T182643Z
必要なパッケージが構成済みのパブリッシャーから使用できないが、別のリポジトリの起点から使用できる場合、次のいずれかのアクションを実行します。
solaris パブリッシャーについてこの起点を追加するには、pkg set-publisher コマンドの -g オプションを使用します。
solaris パブリッシャーについての起点を変更するには、pkg set-publisher コマンドの -g および -G オプションを使用します。
必要なパッケージが別のパブリッシャーから提供される場合、pkg set-publisher コマンドを使用して、そのパブリッシャーを追加します。
検索するリポジトリのリストの最後にリポジトリを一時的に追加するには、インストールコマンド (install、uninstall、update、change-variant、および change-facet) の -g オプションを使用します。
インストールするパッケージが構成済みのパブリッシャーから入手可能かどうかを確認するには、次のコマンドを使用します。パッケージを更新する場合、現在インストールされているパッケージのバージョンと、更新後のバージョンの両方が使用可能である必要があります。
$ pkg list -af package
必要なパッケージが一覧表示されない場合、pkg refresh コマンドをふたたび実行して、pkg list コマンドを再試行してください。
引き続き必要なパッケージがリストされていない場合は、新しいパブリッシャーまたは新しいパブリッシャー起点を追加します。
-af オプションを使用したときに、必要なパッケージバージョンが一覧表示された場合、-f オプションを使用せずに同じコマンドをふたたび使用します。
$ pkg list -a package
必要なバージョンが依然として一覧表示される場合、このパッケージは制約を受けておらず、ほかのパッケージをインストールまたは更新しなくても、このパッケージをインストールできるはずです。
必要なバージョンが一覧表示されない場合、このバージョンは構成済みパブリッシャーから使用できますが、このイメージにインストール可能ではありません。パッケージがインストールできない理由として、次のことが考えられます。
パッケージがバリアントまたはファセットの設定によって制約されている。
パッケージのバージョンが、incorporation パッケージによって制約されている。制約するパッケージを更新したり、場合によっては制約を緩和したりできます。詳細は、制約を満たすことができないを参照してください。
パッケージのバージョンが、凍結操作によって制約されている。pkg freeze コマンドを実行します。インストールする異なるバージョンのパッケージに対して require 依存関係を持つパッケージに凍結が適用されている可能性があり、両方のバージョンを同時にインストールすることはできません。
インストールまたは更新するパッケージを指定し、パブリッシャーを指定しない場合、パッケージ FMRI またはパターンに一致するパッケージを提供する、パブリッシャーの検索順序で最初のパブリッシャーがインストールソースとして使用されます。該当するパブリッシャーがこのイメージ内にインストール可能なパッケージのバージョンを提供しない場合、使用可能な別のパブリッシャーがこのイメージ内にインストール可能なパッケージのバージョンを提供したとしても、インストール操作は失敗します。この問題に対処するには次のいずれかのアクションを実行します。
パッケージ FMRI でパブリッシャーを指定します。たとえば、フルパッケージ名の前に pkg://solaris/ を指定します。
必要なパッケージバージョンを提供するパブリッシャーを検索順序の最初のパブリッシャーに設定するには、pkg set-publisher コマンドの -P オプションを使用します。
インストールまたは更新を行うときは常に -nv オプションを使用して、行われる変更内容 (どのパッケージのどのバージョンがインストールまたは更新されるのかや、新しい BE が作成されるかどうかなど) を確認してください。-v オプションは、この特定のインストールまたは更新操作に適用されるリリースノートも示します。
-nv オプションを使用してもエラーメッセージを受け取らない場合は、-n オプションなしでコマンドを再度実行して、インストールまたは更新を実際に実行します。新しい BE 内でインストールを実行するか、新しい BE またはバックアップ BE がデフォルトで作成されない場合にバックアップ BE を作成するためのオプションを指定するかどうかを検討します。
エラーメッセージを受け取る場合は、次のアクションを行います。
問題の診断および修正に役立つ多くの情報を取得するために、パッケージ FMRI に多くのバージョンを指定します。
詳細オプション -v を指定します (-nvv など)。
pkg history コマンドを使用します。-l オプションによって、変更されたパッケージの完全な FMRI が表示されます。操作履歴の表示を参照してください。
インストールまたは更新する複数のパッケージを指定するか、更新操作でパッケージ指定を省略したとき、いずれかのパッケージをこのイメージにインストールできない場合はインストールまたは更新操作が失敗します。1 つのパッケージをインストールできない場合、パッケージは一切インストールされません。詳細は、インストールできないパッケージのみ指定し、そのパッケージの完全な FMRI を指定し、1 つ以上の -v オプションを指定して、コマンドをふたたび呼び出してください。
このセクションで説明するエラーは、パブリッシャーの URI にアクセスできないことに関連しています。
エラーメッセージ:
Couldn't resolve host
Unable to contact any configured publishers
Unable to contact valid package repository
Origin URIs do not appear to point to a valid pkg repository
パブリッシャーの URI を表示するには、pkg publisher コマンドを使用します。次の例の LOCATION 列または URI 行を参照してください。
$ pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F http://pkg.oracle.com/solaris/release/ $ pkg publisher solaris Publisher: solaris Alias: Origin URI: http://pkg.oracle.com/solaris/release/
使用しなくなったパブリッシャーが一覧表示される場合、これらのパブリッシャーを無効にするか、削除します。
$ pkg set-publisher --disable publisher $ pkg unset-publisher publisher
使用しているパブリッシャーについては、URI が正しいことを確認してください。
各パブリッシャーの起点の場所をブラウザで表示するか、その場所に ping を実行してみてください。
pkgrepo list コマンドを使用して、その起点のパッケージを一覧表示してみてください。
起点の場所が正しくない場合、pkg set-publisher コマンドの -G および -g オプションを一緒に使用して、URI を変更します。
パブリッシャーに複数の起点がある場合は、すべての起点の場所にアクセスできることが必要です。いずれかの起点の場所にアクセスできない場合、pkg set-publisher コマンドの -G オプションを使用して、その起点を削除します。
パブリッシャーが非大域ゾーン内で構成された場合、そのパブリッシャーが大域ゾーン内で構成されていなくても、そのパブリッシャーについてのすべての場所が大域ゾーンからアクセス可能である必要があります。
エラーメッセージ: SSL certificate problem, verify that the CA cert is OK
pkg コマンドによって、SSL 証明書の問題に関するメッセージが表示される場合、次の 1 つ以上のアクションを実行してください。
必要な鍵および証明書がインストールされていることを確認します。鍵および証明書を取得する方法についての情報は、セキュアリポジトリに関するほかの情報に含まれています。
pkg set-publisher コマンドで -k および -c オプションを使用して、鍵および証明書がインストールされる場所を指定します。パブリッシャーに対する pkg publisher コマンドは、パブリッシャーによって鍵および証明書が検出されることが予想される場所を表示します。鍵および証明書がほかの場所にインストールされている場合、-k および -c オプションに正しい値を指定することによって、パブリッシャーを再構成します。
次の例の出力には、鍵および証明書のファイルパスが表示され、abc パブリッシャーについて構成された起点の証明書が期限切れであることが表示されています。
$ pkg publisher abc Publisher: abc Origin URI: https://pkg.oracle.com/abc/release/ SSL Key: /var/pkg/ssl/keyfile SSL Cert: /var/pkg/ssl/certfile Certificate '/var/pkg/ssl/certfile' has expired. Please install a valid certificate.
システムの時間と日付が正しいことを確認してください。
ca-certificates SMF サービスをリフレッシュします。
$ svcadm refresh svc:/system/ca-certificates:default
起点の URI に oc-mgmt が含まれている場合、Ops Center サポート担当者に問い合わせてください。
エラーメッセージ: http protocol error: code: 404 reason: Not Found
パッケージリポジトリにアクセスできないの説明に従って、パブリッシャー URI を確認します。場所を表示したり ping を実行したりできる場合、pkgrepo list コマンドを使用して、リポジトリ内のいずれかのパッケージを表示してみてください。
URI がファイルベースのディレクトリの場合、ファイルおよびディレクトリが pkg5srv ユーザーによって読み取り可能であることを確認してください。pkgrepo verify コマンドを使用して、リポジトリが pkg5srv ユーザーによって読み取り可能であるかどうかを確認できます。
Web サーバー構成を確認します。詳細は、Oracle Solaris 11.2 パッケージリポジトリのコピーと作成 の第 5 章Web サーバーの背後での集積サーバーの実行を参照してください。
Apache Web サーバーインスタンスの背後にパッケージデポサーバーを実行している場合、エンコードされたスラッシュをデコードしないように、次の設定を httpd.conf ファイルに含めます。
AllowEncodedSlashes NoDecode
デポサーバー pkg/proxy_base を、Apache サーバー上のリポジトリの URL に設定します。
$ svccfg -s pkg/server:repo setprop pkg/proxy_base = astring: http://pkg.example.com/myrepo $ svcadm refresh pkg/server:repo
非大域ゾーンで問題が発生する場合、次のトラブルシューティングステップを実行します。非大域ゾーンはシステムリポジトリと呼ばれる特殊なパッケージリポジトリを使用します。システムリポジトリの詳細は、pkg.sysrepo(1M) のマニュアルページを参照してください。
非大域ゾーンを持つイメージ内で -g オプションを使用することはできません。代わりに、pkg set-publisher コマンドを使用して、そのパブリッシャーおよび起点を明示的に追加します。
ファイルベースリポジトリ内のファイルおよびディレクトリが pkg5srv ユーザーによって読み取り可能であることを確認してください。pkg5srv ユーザーは system-repository Apache インスタンスを実行します。システムリポジトリの場所を見つける方法を示す例については、大域ゾーンと非大域ゾーンの関係を参照してください。
外部の場所にアクセスするためにサイトでプロキシが必要な場合、大域ゾーンのパブリッシャーに対してプロキシが正しく指定されていることを確認します。プロキシを指定するには、pkg set-publisher コマンドの --proxy オプションを使用します。手順については、プロキシの指定を参照してください。プロキシの確認方法の 1 つとして、pkg refresh --full コマンドからアクセスエラーメッセージを受け取らないことを確認する方法があります。
サービス svc:/application/pkg/system-repository:default が大域ゾーンでオンラインであることを確認します。
サービス svc:/application/pkg/zones-proxyd:default が大域ゾーンでオンラインであること、およびサービス svc:/application/pkg/zones-proxy-client:default が非大域ゾーンでオンラインであることを確認します。
大域ゾーンで、/var/log/pkg/sysrepo/* 内のログファイルを調べ、ファイルの読み取りを試行するときに権限エラーが報告されていないかどうかを確認します。404 または 503 エラーが /var/log/pkg/sysrepo/access_log に報告されていないか確認します。/var/log/pkg/sysrepo/error_log にエラーが報告されていないか確認します。
大域ゾーンにおいて、/etc/hosts ファイルで localhost が 127.0.0.1 に設定されていることを確認します。/system/volatile/pkg/sysrepo/sysrepo_httpd.conf ファイルで、Listen が 127.0.0.1:1008 に設定され、ServerName が 127.0.0.1 に設定されていることを確認します。
大域ゾーンで、ファイル /system/volatile/pkg/sysrepo/sysrepo_httpd.conf が次の形式の Alias 行を含むかどうかを確認します。
$ grep Alias /system/volatile/pkg/sysrepo/sysrepo_httpd.conf WSGIScriptAlias /wsgi_p5p /etc/pkg/sysrepo/sysrepo_p5p.py
sysrepo_httpd.conf ファイルに Alias 行がない場合、sysrepo サービスを再起動します。
$ svcadm restart svc:/application/pkg/system-repository:default
エラーメッセージ: http protocol error: code: 503 reason: Service Unavailable
pkg publisher コマンドを使用して、使用しようとしているパッケージリポジトリの場所を検出し、そのシステム上の SMF サービスを調べます。次のコマンドを使用して、使用可能であるが実行中でないパッケージリポジトリ SMF サービスインスタンスと、使用可能な別のインスタンスの実行を妨げているインスタンスを識別します。
$ svcs -xv pkg/server svc:/application/pkg/server: default (image packaging repository) State: online since July 25, 2013 07:53:50 AM PDT See: /var/svc/log/application-pkg-server:default.log Impact: None.
いずれかのサービスが問題を報告している場合、svcs 出力に一覧表示されるログファイルを確認して、特定の問題を判別します。
inst_root プロパティー、port プロパティー、およびその他のプロパティーが正しく設定されていることを確認します。
$ svcprop -p pkg pkg/server:default $ svcprop -p pkg/inst_root -p pkg/port pkg/server:default /export/IPSpkgrepos/Solaris 80
必要な場合、次の例に示すように、svccfg コマンドを使用してプロパティー値をリセットします。
$ svccfg -s pkg/server:default setprop pkg/port=1008
必要に応じてサービスインスタンスをクリア、リフレッシュ、再起動、および使用可能にするには、svcadm コマンドを使用します。
エラーメッセージ: No updates available for this image
特定のパッケージを更新する場合、次のコマンドを使用して、このイメージに現在インストールされているパッケージのバージョンを表示します。すべてのインストール済みパッケージを更新する場合 (pkg update でパッケージを指定しないか、パッケージ名として '*' を指定)、これらのコマンドの package に pkg:/entire を使用します。
$ pkg list -v package
現在インストールされているバージョンが存在しない場合、pkg update ではなく pkg install コマンドを使用してください。
あるバージョンの package が現在インストールされている場合、次のコマンドを使用して、構成済みのパブリッシャーから使用できる package のバージョンを表示します。
$ pkg list -afv package
最上位のバージョン番号を持つパッケージがすでにインストールされている場合、それより新しいバージョンはおそらく存在しません。
新しいバージョンが存在する場合、新しいバージョンが使用可能なパッケージリポジトリの場所を判別し、pkg set-publisher コマンドを使用して起点 URI をリセットするか、適切なパブリッシャーの起点 URI を追加します。必要な場合、必要な鍵および証明書をインストールし、-k および -c オプションを使用して、これらを指定します。pkgrepo list コマンドを使用して、現在インストールされているバージョンのパッケージが、構成済みのパブリッシャーからも利用できることを確認します。
次の例に示すように、インストールするパッケージの FMRI にバージョン (またはキーワード latest) を含めて -nv オプションを指定して、pkg update コマンドを再実行します。パッケージ名に指定する情報が多くなれば、エラー出力の情報も多くなります。
$ pkg update -nv package@latest
エラーメッセージ: No matching version of package can be installed
次のコマンドを使用して、構成済みのパッケージパブリッシャーから使用できる package のバージョンを表示します。
$ pkg list -afv package
インストールするパッケージの FMRI を詳細に指定します。最初に検出された一致はこのイメージにインストール可能でないかもしれませんが、インストールする特定のバージョンはインストール可能な場合があります。FMRI をさらに特定しても依然としてインストール可能でない場合、FMRI を詳しく指定すると、パッケージをインストールできない理由が詳しく表示されます。
インストールまたは更新するパッケージのバージョンが凍結されていないことを確認してください。バージョンが凍結されたすべてのパッケージを一覧表示するには、引数を指定せずに pkg freeze コマンドを使用します。
インストールされている pkg:/entire パッケージのバージョンを表示するには、次のコマンドを使用します。
$ pkg list -v entire
pkg:/entire incorporation パッケージまたはほかの incorporation パッケージによって制約されているパッケージをインストールまたは更新することはできません。incorporation パッケージを更新する必要があります。詳細は、制約を満たすことができないを参照してください。
エラーメッセージ: No solution was found to satisfy constraints
このメッセージは、あるバージョンのパッケージをインストールしようとしたが、そのパッケージのバージョンが、incorporation パッケージによる制約で指定されたパッケージのバージョンと一致しないことを示しています。incorporation パッケージと制約については、incorporation パッケージを参照してください。
Incorporation によって、パッケージのセットは一緒に機能するバージョンに制約されるため、サポート可能なイメージを保持するのに役立ちます。このため、incorporation によって制約される 1 つのパッケージを更新しないでください。代わりに、incorporation パッケージを更新する必要があり、この結果、制約されたすべてのパッケージは、一緒にテストされた新しいバージョンのセットに更新されます。
パッケージが変更されるとき (たとえば更新されるとき)、pkg クライアントは関連するパッケージとそれらの依存関係を調べます。いずれかの依存パッケージをインストールまたは更新できない場合、インストールまたは更新できないパッケージに依存するパッケージごとに、個別のエラーメッセージが生成されます。大量のエラーメッセージを処理するもっとも効果的な方法は、もっともインデントされたエラーメッセージを最初に調べるやり方です。
エラーメッセージ:
No suitable version of installed package package found
All versions matching 'incorporate' dependency package are rejected
This version excluded by specified installation version
This version is excluded by installed incorporation
incorporation によって制約されたパッケージの場合、incorporation パッケージを更新し、制約されたすべてのパッケージを、一緒にテストされたセットとして保持することがベストプラクティスです。
incorporation からの 1 つのパッケージのみ更新する場合、パッケージの version-lock ファセットが true に設定されているかどうかを確認します。パッケージに version-lock ファセットが関連付けられている場合、そのパッケージを incorporation からロック解除できます。version-lock ファセットを false に設定して制約を除去し、その後パッケージのインストールまたは更新を再試行します。-nv オプションと、パッケージ名の FMRI に必要なパッケージのバージョンを指定します。incorporation によって指定されたバージョン制約の緩和も参照してください。
使用例 A-1 Java Runtime Environment のロック解除と更新次の例は、runtime/java/jre-7 パッケージを更新する方法を示しています。jre-7 パッケージは consolidation/java/java-incorporation パッケージによって制約され、java-incorporation パッケージは同様に pkg:/entire incorporation パッケージによって制約されます。
次のコマンドは、0.175.2.0.0.9.0 バージョンの jre-7 が現在インストールされており、構成済みのパッケージリポジトリから新しいバージョンが使用可能であることを示しています。
$ pkg list -af runtime/java/jre-7 NAME (PUBLISHER) VERSION IFO runtime/java/jre-7 1.7.0.21-0.175.2.0.0.13.0 --- runtime/java/jre-7 1.7.0.17-0.175.2.0.0.9.0 i--
-f オプションを削除すると、可能な更新後のバージョンが表示されます。次の pkg list 出力には、このイメージにインストール可能な新規バージョンがないことが示され、pkg update コマンド出力でこの状態が確認できます。-n オプションは、実行される変更を示しますが、変更を一切加えません。
$ pkg list -a runtime/java/jre-7 NAME (PUBLISHER) VERSION IFO runtime/java/jre-7 1.7.0.17-0.175.2.0.0.9.0 i-- $ pkg update -nv runtime/java/jre-7 No updates available for this image.
このパッケージを更新できない理由を詳細に示すには、更新後のバージョンを指定します。次の例に示す出力では、インストール済みの java-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 パッケージは、jre-7@1.7.0.21-0.175.2.0.0.13.0 パッケージのインストールを許可しないことを示しています。java-incorporation@0.5.11,5.11-0.175.2.0.0.13.0 パッケージは、jre-7@1.7.0.21-0.175.2.0.0.13.0 パッケージのインストールを許可しますが、インストール済みの entire@0.5.11,5.11-0.175.2.0.0.12.0 incorporation パッケージは jre-7@1.7.0.21-0.175.2.0.0.13.0 パッケージのインストールを許可しません。
$ pkg update -nv runtime/java/jre-7@1.7.0.21-0.175.2.0.0.13.0 pkg update: No solution was found to satisfy constraints maintained incorporations: [output omitted] pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z Plan Creation: dependency error(s) in proposed packages: [output omitted] No suitable version of required package pkg://solaris/consolidation/java/java- incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found: Reject: pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1 75.2.0.0.9.0:20130304T213946Z Reason: All versions matching 'incorporate' dependency pkg:/runtime/java/jr e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected Reject: pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20 130304T214022Z Reason: This version excluded by specified installation version Reject: pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0: 20130304T214022Z Reason: This version excluded by specified installation version Reject: pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0 .175.2.0.0.13.0:20130429T145534Z Reason: This version is excluded by installed incorporation pkg://solaris /entire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z Plan Creation: Errors in installed packages due to proposed changes: [output omitted] No suitable version of installed package pkg://solaris/consolidation/java/java -incorporation@0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z found Reject: pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1 75.2.0.0.9.0:20130304T213946Z Reason: All versions matching 'incorporate' dependency pkg:/runtime/java/jr e-7@1.7.0.17,5.11-0.175.2.0.0.9.0 are rejected Reject: pkg://solaris/runtime/java/jre-7@1.7.0.17,5.11-0.175.2.0.0.9.0:20 130304T214022Z Reason: This version excluded by specified installation version Reject: pkg://solaris/consolidation/java/java-incorporation@0.5.11,5.11-0.1 75.2.0.0.13.0:20130429T145534Z Reason: This version is excluded by installed incorporation pkg://solaris/e ntire@0.5.11,5.11-0.175.2.0.0.12.0:20130415T172730Z
ベストプラクティスは、entire パッケージを更新することです。entire パッケージを更新すると、java-incorporation パッケージが更新され、その結果として jre-7 パッケージが更新されます。この例では、Java パッケージを更新する必要があり、イメージを entire の更新済みバージョンに変更することはできません。
インストール可能な Java ソフトウェアのバージョンは、Java incorporation パッケージの version-lock ファセットを設定することによって制約されます。ほかのソフトウェアを更新せずに Java ソフトウェアを更新するには、Java incorporation パッケージの version-lock ファセットをロック解除し、そのあとで Java incorporation パッケージを更新します。version-lock ファセットの詳細は、incorporation によって指定されたバージョン制約の緩和を参照してください。
次のコマンドによって、インストール済みの java-incorporation パッケージの version-lock ファセットの値が false に変更されます。イメージ内の各パッケージがこのファセットに対して検査されるため、更新するパッケージ数は、このイメージにインストールされているパッケージの数です。
$ pkg change-facet \ facet.version-lock.consolidation/java/java-incorporation=false Packages to update: 856 Variants/Facets to change: 1 Create boot environment: No Create backup boot environment: Yes Planning linked: 1/1 done PHASE ITEMS Removing old actions 1/1 Updating image state Done Creating fast lookup database Done Reading search index Done Building new search index 856/856
次のコマンドは、ファセット値が変更されたことを示しています。
$ pkg facet FACETS VALUE facet.version-lock.consolidation/java/java-incorporation False
次のコマンドでは -n オプションが指定されているため、このコマンドによって変更される内容が示されますが、イメージを実際に変更するわけではありません。
$ pkg update -nv java-incorporation Packages to update: 2 Estimated space available: 80.91 GB Estimated space to be consumed: 687.28 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed packages: solaris consolidation/java/java-incorporation 0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0 :20130429T145534Z runtime/java/jre-7 1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0. 13.0:20130429T145626Z
次のコマンドは実際の更新を実行します。このコマンドは、現在のイメージ内で更新を実行します。新しいブート環境で更新を実行するために、--be-name オプションを使用する場合もあります。
$ pkg update -v java-incorporation Packages to update: 2 Estimated space available: 80.91 GB Estimated space to be consumed: 687.28 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed packages: solaris consolidation/java/java-incorporation 0.5.11,5.11-0.175.2.0.0.9.0:20130304T213946Z -> 0.5.11,5.11-0.175.2.0.0.13.0 :20130429T145534Z runtime/java/jre-7 1.7.0.17,5.11-0.175.2.0.0.9.0:20130304T214022Z -> 1.7.0.21,5.11-0.175.2.0.0. 13.0:20130429T145626Z DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 2/2 171/171 61.9/61.9 0B/s PHASE ITEMS Removing old actions 7/7 Installing new actions 6/6 Updating modified actions 170/170 Updating package state database Done Updating package cache 2/2 Updating image state Done Creating fast lookup database Done Reading search index Done Updating search index 2/2
次のコマンドは、このイメージ内で jre-7 パッケージが更新されたことを確認しています。新しいブート環境で更新を実行する場合、beadm mount および pkg -R を使用して、新しいブート環境で次の検査を行います。
$ pkg list jre-7 NAME (PUBLISHER) VERSION IFO runtime/java/jre-7 1.7.0.21-0.175.2.0.0.13.0 i--
エラーメッセージ: A version for 'incorporate' dependency cannot be found
incorporation パッケージとそれらの incorporate 依存関係については、incorporation パッケージを参照してください。
incorporation パッケージの更新に失敗することがある理由の例として、incorporation パッケージの incorporate 依存関係のインストール状態が、次のようになっていることがあります。
依存パッケージが異なるバージョンで凍結されている。
依存パッケージが高いバージョンですでにインストールされている。
依存パッケージが別のパブリッシャーからインストールされており、そのパブリッシャーが固定である。
次の例ではパッケージ名が指定されていないため、インストール済みのすべてのパッケージの更新が試行されます。この操作で更新を試行するインストール済みパッケージの 1 つが、pkg:/entire incorporation パッケージです。この例は、すでに高いバージョンでインストールされている pkg:/entire の incorporate 依存関係を示しています。
$ pkg update --be-name s11.2 Creating Plan (Solver setup): / pkg update: No solution was found to satisfy constraints Plan Creation: Package solver has not found a solution to update to latest available versions. This may indicate an overly constrained set of packages are installed. latest incorporations: [output omitted] pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z The following indicates why the system cannot update to the latest version: No suitable version of required package pkg://solaris/entire@0.5.11,5.11-0.175.2 .0.0.10.0:20130318T181506Z found: Reject: pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z Reason: A version for 'incorporate' dependency on pkg:/consolidation/ub_javavm /ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0 cannot be found
このメッセージでは、システムが更新対象としていた pkg:/entire incorporation パッケージのバージョンが、インストールできない ub_javavm-incorporation パッケージのバージョンを指定しています。1 つのパッケージをインストールできないため、パッケージは一切インストールされず、更新は失敗します。
次の方法を使用すれば、ub_javavm-incorporation パッケージをインストールできない理由の詳細を提供できます。
-v オプションを使用します。たとえば、詳細な出力を受け取るために、-v または -vv を使用します。
更新するパッケージを指定します。一般的に、詳細な情報を入力すると、詳細なメッセージが表示されます。たとえば、パッケージ FMRI に、パッケージ名に加えてバージョンを指定します。
次のコマンドでは -v オプションを指定し、上記のメッセージからコピーされた entire@0.5.11,5.11-0.175.2.0.0.10.0 パッケージへの更新が指定されています。このコマンドでは、--be-name オプションの代わりに -n オプションが指定されています。-n オプションは、実行される内容を表示しますが、このイメージを実際に変更するわけではありません。
$ pkg update -nv entire@0.5.11,5.11-0.175.2.0.0.10.0 Creating Plan (Solver setup): / pkg update: No matching version of entire can be installed: Reject: pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.10.0:20130318T181506Z Reason: All versions matching 'require' dependency pkg:/consolidation/ub_javav m/ub_javavm-incorporation are rejected Reject: pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11, 5.11-0.151.0.1:20101105T053418Z pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17 5.0.0.0.2.0:20111019T144756Z pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.17 5.0.10.1.0.0:20120920T143020Z Reason: Excluded by proposed incorporation 'entire' Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0. 5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed Reject: pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11, 5.11-0.175.2.0.0.9.0:20130304T213739Z Reason: Newer version pkg://solaris/consolidation/ub_javavm/ub_javavm-incorpo ration@0.5.11,5.11-0.175.2.0.0.13.0:20130429T145201Z is already installed Reject: pkg://solaris/consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5 .11-0.175.2.0.0.13.0:20130429T145201Z Reason: Excluded by proposed incorporation 'entire'
これらのメッセージは、このイメージに現在インストールされている ub_javavm-incorporation パッケージのバージョンが、更新操作によってインストールされる pkg:/entire incorporation パッケージによって指定されたバージョンよりも新しいことを示しています。
次のコマンドは、現在インストールされている ub_javavm-incorporation パッケージのバージョンを表示します。
$ pkg list ub_javavm-incorporation NAME (PUBLISHER) VERSION IFO consolidation/ub_javavm/ub_javavm-incorporation 0.5.11-0.175.2.0.0.13.0 i--
次のコマンドは、システムが更新対象として指定しようとした pkg:/entire incorporation パッケージによって指定されている ub_javavm-incorporation パッケージのバージョンを示しています。システムが更新対象として指定しようとした pkg:/entire incorporation パッケージのバージョンは、上記の出力の先頭にある「Reject」メッセージからのコピーです。-r オプションは、インストール済みイメージではなく構成済みのパッケージリポジトリからこのパッケージを検索します。
$ pkg contents -Hrt depend \ -a facet.version-lock.consolidation/ub_javavm/ub_javavm-incorporation=true \ -o fmri entire@0.5.11,5.11-0.175.2.0.0.10.0 consolidation/ub_javavm/ub_javavm-incorporation@0.5.11-0.175.2.0.0.9.0
この問題を修正するために、指定された特定のパッケージを除くすべてのインストール済みパッケージを更新するように更新操作に指示できます。pkg update コマンドで 1 つ以上の --reject オプションを使用して、--reject オプションで指定されたパッケージの更新を試行せずに更新を実行します。--reject 引数にはワイルドカードを使用できます。次のコマンドで、拒否するパッケージは上記の「Reason: Newer version is already installed」メッセージの前にある、「Reject」メッセージからコピーされたものです。
$ pkg update -v --be-name s11.2 \ --reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.151*' \ --reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.0*' \ --reject 'consolidation/ub_javavm/ub_javavm-incorporation@0.5.11,5.11-0.175.2.0.0.9.0*'
エラーメッセージ:
The installed package package is not permissible
Excluded by proposed incorporation
これらのエラーメッセージを受け取った場合、package はおそらく、ほかのコアのオペレーティングシステムパッケージと同期して保持する必要があるコアのオペレーティングシステムパッケージです。pkg facet コマンドを使用して、facet.version-lock.package ファセットの値を確認してください。この version-lock ファセットの値が false の場合、pkg change-facet コマンドを使用して、このファセットの値を true に変更し、更新操作を再試行してください。
エラーメッセージ: A version for 'require' dependency cannot be found
必要なパッケージが見つからないという次のメッセージのようなメッセージを受け取る場合、構成済みのパブリッシャーからパッケージが使用可能であるかどうかを確認します。
pkg update: No solution was found to satisfy constraints Plan Creation: Package solver has not found a solution to update to latest available versions. This may indicate an overly constrained set of packages are installed. [output omitted] No suitable version of required package package1 found: Reject: package1 Reason: A version for 'require' dependency package2 cannot be found
package2 が構成済みのパブリッシャーから使用可能であるかどうかを表示するには、次のコマンドを使用します。
$ pkg list -afv package2
パブリッシャーの起点の場所を確認するには、pkg publisher コマンドを使用します。このパッケージのパブリッシャーは、完全な FMRI の pkg:// の後に示されます。パブリッシャーの起点の場所を変更することが必要な場合もあります。場所がローカルパッケージリポジトリのとき、リポジトリの更新が必要な場合もあります。
エラーメッセージ:
No solution was found to satisfy constraints
All versions matching 'require' dependency package are rejected
pkg update コマンドからの次の出力で、最初のエラーメッセージでは、必要なパッケージ desktop-incorporation の適切なバージョンが見つからないことが示されています。desktop-incorporation パッケージが適切でないのは、そのいずれかの依存パッケージが見つからないためです。適切なバージョンが見つからないため、desktop-incorporation パッケージは拒否されます。desktop-incorporation パッケージが pkg:/entire incorporation によって必要とされているため、pkg update は失敗します。次のコマンドは、desktop-incorporation パッケージが pkg:/entire incorporation によって必要とされていることが示されています。
$ pkg search -Hlo pkg.name require:consolidation/desktop/desktop-incorporation
その次のエラーメッセージでは、必要なパッケージ python-extra-26 の適切なバージョンが見つからないことが示されています。python-extra-26 パッケージが適切でない理由は、python-extra-26 パッケージには desktop-incorporation パッケージが必要ですが、desktop-incorporation の適切なバージョンが見つからなかったためです。
この情報により、この更新の失敗の解決策は、desktop-incorporation パッケージの必要なバージョンをインストールする方法を見つけることであるということがわかります。
pkg update: No solution was found to satisfy constraints maintained incorporations: [output omitted] Plan Creation: dependency error(s) in proposed packages: [output omitted] No suitable version of required package pkg://solaris/consolidation/desktop /desktop-incorporation@0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z found: Reject: pkg://solaris/consolidation/desktop/desktop-incorporation @0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z Reason: A version for 'incorporate' dependency on pkg:/library/python-2 /python-sexy-26@0.1.9-0.175.0.0.0.1.0 cannot be found No suitable version of required package pkg://solaris/library/python-2 /python-extra-26@2.6.4-0.175.1.0.0.15.0:201205014T200156Z found: Reject: pkg://solaris/library/python-2/python-extra-26@ 2.6.4-0.175.1.0.0.15.0:201205014T200156Z Reason: All versions matching 'require' dependency pkg:/consolidation /desktop/desktop-incorporation are rejected Reject: pkg://solaris/consolidation/desktop/desktop-incorporation @0.5.11,5.11-0.175.0.0.0.2.0:20111019T132128Z [output omitted] pkg://solaris/consolidation/desktop/desktop-incorporation @0.5.11,5.11-0.175.2.0.0.26.0:20131028T145233Z
次のコマンドは、必要な desktop-incorporation パッケージについて見つからないパッケージが、必要ではないことを示しています。python-sexy-26 パッケージは desktop-incorporation パッケージによる incorporation 対象となっていますが、必要ではありません。
$ pkg search -Hlo pkg.name require:library/python-2/python-sexy-26 $ pkg search -Hlo pkg.name incorporate:library/python-2/python-sexy-26 consolidation/desktop/desktop-incorporation
incorporate 依存関係は、python-sexy-26 パッケージがインストールされる場合、指定されたバージョンでインストールされなければならないことを示しています。ただし、python-sexy-26 パッケージを必要とするパッケージが存在しないため、python-sexy-26 パッケージをインストールする必要はありません。したがって、この更新の失敗の 1 つの解決策は、python-sexy-26 パッケージをアンインストールすることです。このパッケージの別のバージョンが現在インストールされており、更新では desktop-incorporation incorporation によって指定されたバージョンが見つかりませんでした。パッケージをアンインストールすると、更新処理では更新されたパッケージを見つける必要がなくなります。
python-sexy-26 パッケージが必要であってアンインストールすることを望まない場合、pkg:/library/python-2 /python-sexy-26@0.1.9-0.175.0.0.0.1.0 を提供するパッケージリポジトリを検索します。pkg set-publisher コマンドを使用して、そのリポジトリをパブリッシャーの起点の場所に追加するか、pkgrecv コマンドを使用して、そのパッケージを現在設定されているパブリッシャーの起点に追加します。
エラーメッセージ: pkg update: The installed package package is not permissible.
更新操作でワイルドカードを使用するとき、更新されるはずの一部のパッケージが更新されない場合にエラーメッセージがまったく表示されないことがあります。ワイルドカードを使用せずにパッケージ名を指定すると、エラーメッセージが表示される場合があります。
たとえば、新しいパッケージが構成済みのパブリッシャーから使用可能であることが確認されたにもかかわらず、次の操作がエラーを出さずに完了し、すべてのパッケージを更新しないことがあります。
$ pkg update '*'
詳細な情報を取得するには、ワイルドカードを使用する代わりに、更新後の pkg:/entire のバージョンを指定します。
$ pkg list -Hafv entire pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z --- $ pkg update -nv pkg://solaris/entire@0.5.11,5.11-0.175.2.0.0.9.0:20130304T214506Z Creating Plan (Solver setup): - pkg update: The installed package compress/zip is not permissible. Reject: pkg://solaris/compress/zip@3.0,5.11-0.175.2.0.0.7.0:20121119T070339Z Reason: Excluded by proposed incorporation 'consolidation/userland/userland-incorporation'
この例で、パッケージ compress/zip は userland-incorporation incorporation パッケージの更新を妨げ、後者のパッケージは pkg:/entire incorporation の更新を妨げています。次のコマンドは、compress/zip パッケージの詳細情報を表示します。
$ pkg list compress/zip NAME (PUBLISHER) VERSION IFO compress/zip 3.0-5.11-0.175.2.0.0.7.0 if-
この出力は、compress/zip パッケージが凍結されていることを示します。パッケージは凍結されているため更新できません。
$ pkg unfreeze compress/zip compress/zip was unfrozen.
compress/zip パッケージの凍結を解除した場合、元の pkg update '*' 操作によって、更新が使用可能なイメージ内のすべてのパッケージが更新されるはずです。pkg freeze および pkg unfreeze コマンドについては、指定したバージョンへのパッケージのロックを参照してください。
同期リンクされたパッケージをインストールできないに示す pkg sync-linked エラーも類似していますが、非大域ゾーン内のパッケージが更新を妨げていることを示しています。
エラーメッセージ: pkg sync-linked: The installed package package is not permissible.
sync-linked パッケージは、非大域ゾーンのパッケージです。親イメージとのバージョンの不一致という理由でパッケージの拒否が表示される場合があります。
Linked progress: -pkg: update failed (linked image exception(s)): A 'sync-linked' operation failed for child 'zone:z1' with an unexpected return value of 1 and generated the following output: pkg sync-linked: The installed package package is not permissible. Reject: package Reason: Parent image has a incompatible newer version: package
次の理由により、この非互換性メッセージを受け取ることがあります。
コアのオペレーティングシステムパッケージは、非大域ゾーンと大域ゾーンとで同じバージョンにする必要があります。これらのパッケージを非大域ゾーンで個別に更新することはできません。同様に、1 つの非大域ゾーン内でこれらのいずれかのパッケージを凍結すると、大域ゾーンとすべての非大域ゾーンで更新が失敗します。
次のコマンドは、大域ゾーンと非大域ゾーンの間で同期を維持する必要があるパッケージを一覧表示します。
$ pkg search -o pkg.name :depend:parent:
ゾーンが構成されている BE を更新するとき、その BE をマウントし、pkg -R コマンドを使用して代替 BE (ABE) を更新するという操作は、ABE のパブリッシャー構成が、現在ブートされている BE のパブリッシャー構成と異なる場合は実行できません。ABE の非大域ゾーンでは、現在アクティブな BE からのパブリッシャー構成が使用されます。
エラーメッセージ: The following pattern(s) did not match any allowable packages. Try using a different matching pattern, or refreshing publisher information
コアのオペレーティングシステムパッケージは、非大域ゾーンと大域ゾーンとで同じバージョンにする必要があります。このイメージ内の solaris パブリッシャーの起点が、大域ゾーンにインストールされたシステムパッケージと同じバージョンを含まないパッケージリポジトリに設定された場合、非大域ゾーンをインストールしようとすると、次のエラーになります。
$ zoneadm -z myzone install The following ZFS file system(s) have been created: rpool/export/zones/myzone Progress being logged to /var/log/zones/zoneadm.20131104T181301Z.myzone.install Image: Preparing at /export/zones/myzone/root. AI Manifest: /tmp/manifest.xml.9daq.i SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml Zonename: myzone Installation: Starting ... Creating IPS image Startup linked: 1/1 done Installing packages from: solaris origin: http://pkg.oracle.com/solaris/release/ Error occurred during execution of 'generated-transfer-4606-1' checkpoint. Failed Checkpoints: Checkpoint execution error: The following pattern(s) did not match any allowable packages. Try using a different matching pattern, or refreshing publisher information: Installation: Failed. See install log at /system/volatile/install.4606/install_log ERROR: auto-install failed.
非大域ゾーンをインストールするには、solaris パブリッシャーの起点として設定するリポジトリが、非大域ゾーンのインストール場所となる大域ゾーン内にインストールされているものと同じシステムソフトウェアを最低限含んでいる必要があります。リポジトリには古いソフトウェアまたは新しいソフトウェアを含めることもできますが、大域ゾーンにインストールされているものと同じソフトウェアを含む必要があります。次のコマンドは、大域ゾーンにインストールされている pkg:/entire パッケージと同じバージョンが /export/IPSpkgrepos/Solaris リポジトリに含まれているため、このリポジトリはこの大域ゾーンの適切なパブリッシャーの起点であることを示しています。
$ pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11-0.175.2.0.0.26.0 i-- $ pkgrepo list -H -s /export/IPSpkgrepos/Solaris \ entire@0.5.11-0.175.2.0.0.26.0 solaris entire 0.5.11-0.175.2.0.0.26.0:20131028T190148Z $ pkg set-publisher -G '*' -M '*' -g /export/IPSpkgrepos/Solaris/ solaris
エラーメッセージ: pkg: The image cannot be modified as it is currently in use by another package client
次の例に示すように、エラーメッセージには、イメージがロックされているクライアントの名前と pid が含まれているはずです。
pkg: The image cannot be modified as it is currently in use by another package client: pkg on cbusl0406l, pid 26604.
現在のパッケージ処理 (この例では処理 26604) が終了したあとで pkg コマンドを再試行してください。処理がすぐに終了しない場合、たとえば ptree -a を使用して、処理の調査を開始します。
このイメージについて現在動作中のパッケージ処理は、更新が使用可能かどうかを検査する更新マネージャーである場合があります。更新マネージャーの cron ジョブと pkg/update サービスの詳細については、更新マネージャーの使用 を参照してください。
次の情報メッセージの後に、改修されたファイルのパスと、ファイルの一時的な移動先が続きます。
The following unexpected or editable files and directories were salvaged while executing the requested package operation; they have been moved to the displayed location in the image:
これは情報メッセージのため無視してもかまいませんが、必要に応じて対応することもできます。
ディレクトリは、IPS で参照カウントされます。あるディレクトリを明示的または暗黙的に参照している、イメージ内にインストールされている最後のパッケージがそのディレクトリを参照しなくなると、そのディレクトリは削除されます。そのディレクトリにパッケージ解除されたファイルシステムオブジェクトが含まれている場合、それらの項目は $IMAGE_META/lost+found に移動されます。パッケージ解除されたファイルシステムオブジェクトは、IPS パッケージで配信されなかったファイルおよびディレクトリです。IMAGE_META の値は通常 /var/pkg です。IMAGE_META ディレクトリについての詳細は、pkg(5) のマニュアルページのファイルに関するセクションを参照してください。
/var/pkg ディレクトリはイメージのメタデータを保持します。このディレクトリは非常に大きくなる可能性があります。/var/pkg ディレクトリから手動で削除しないでください。
flush-content-cache-on-success イメージプロパティーの値が true に設定されていることを確認します。flush-content-cache-on-success プロパティーの値はデフォルトで true です。flush-content-cache-on-success の値が true の場合は、pkg install および pkg update の操作が正常に完了したとき、キャッシュ済みファイルが削除されます。flush-content-cache-on-success プロパティーが false に設定されている場合、次の例に示すコマンドを使用して、値を true にリセットできます。
$ pkg property flush-content-cache-on-success PROPERTY VALUE flush-content-cache-on-success False $ pkg set-property flush-content-cache-on-success true $ pkg property -H flush-content-cache-on-success flush-content-cache-on-success True
内容キャッシュのフラッシュ (flush-content-cache-on-success を true に設定すること) によって、一部の pkg 操作が完了するまでの時間が長くなることがあります。
非大域ゾーンには別のキャッシュがあり、/usr/lib/pkg.sysrepo の -c オプションで設定できます。-s オプションで、このキャッシュの最大サイズを設定できます。pkg.sysrepo(1M) のマニュアルページを参照してください。
次のステップは、パッケージのインストールおよび更新のパフォーマンスの増大に役立ちます。
ZFS ストレージプールの容量が 80% より低いことを確認します。
$ zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 186G 75.2G 111G 40% 1.00x ONLINE -
ローカルパッケージリポジトリを使用します。Oracle Solaris 11.2 パッケージリポジトリのコピーと作成 を参照してください。
http_proxy が設定されている場合、プロキシのパフォーマンスを確認します。