エラーメッセージ: No solution was found to satisfy constraints
このメッセージは、あるバージョンのパッケージをインストールしようとしたが、そのパッケージのバージョンが、制約パッケージによる制約で指定されたパッケージのバージョンと一致しないことを示しています。制約パッケージとバージョン制約については、Constraint Packagesを参照してください。
制約パッケージによって、パッケージのセットは一緒に機能するバージョンに制約されるため、サポート可能なイメージを保持するのに役立ちます。このため、制約パッケージによって制約される 1 つのパッケージを更新しないでください。代わりに、制約パッケージを更新する必要があり、この結果、制約されたすべてのパッケージは、一緒にテストされた新しいバージョンのセットに更新されます。
パッケージが変更されるとき (たとえば更新されるとき)、pkg クライアントは関連するパッケージとそれらの依存関係を調べます。いずれかの依存パッケージをインストールまたは更新できない場合、インストールまたは更新できないパッケージに依存するパッケージごとに、個別のエラーメッセージが生成されます。大量のエラーメッセージを処理するもっとも効果的な方法は、もっともインデントされたエラーメッセージを最初に調べるやり方です。
Non-Global Zone Cannot Be Installedも参照してください。
エラーメッセージ:
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
制約パッケージによって制約されたパッケージの場合、制約パッケージを更新し、制約されたすべてのパッケージを、一緒にテストされたセットとして保持することがベストプラクティスです。
制約パッケージからの 1 つのパッケージのみ更新する場合、パッケージの version-lock ファセットが true に設定されているかどうかを確認します。パッケージに version-lock ファセットが関連付けられている場合、そのパッケージを制約パッケージからロック解除できます。version-lock ファセットを false に設定して制約を除去し、その後パッケージのインストールまたは更新を再試行します。-nv オプションと、パッケージ名の FMRI に必要なパッケージのバージョンを指定します。Relaxing Version Constraints Specified by Constraint Packagesも参照してください。
使用例 26 Java Runtime Environment のロック解除と更新次の例は、runtime/java/jre-7 パッケージを更新する方法を示しています。jre-7 パッケージは consolidation/java/java-incorporation パッケージによって制約され、java-incorporation パッケージは同様に pkg:/entire 制約パッケージによって制約されます。
次のコマンドは、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 制約パッケージは 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 制約パッケージの version-lock ファセットを設定することによって制約されます。ほかのソフトウェアを更新せずに Java ソフトウェアを更新するには、Java 制約パッケージの version-lock ファセットをロック解除し、そのあとで Java 制約パッケージを更新します。version-lock ファセットの詳細は、Relaxing Version Constraints Specified by Constraint Packagesを参照してください。
次のコマンドによって、インストール済みの 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
制約パッケージとそれらの incorporate 依存関係については、Constraint Packagesを参照してください。
制約パッケージの更新に失敗することがある理由の例として、制約パッケージの incorporate 依存関係のインストール状態が、次のようになっていることがあります。
依存パッケージが異なるバージョンで凍結されている。
依存パッケージが高いバージョンですでにインストールされている。
依存パッケージが別のパブリッシャーからインストールされており、そのパブリッシャーが固定である。
次の例ではパッケージ名が指定されていないため、インストール済みのすべてのパッケージの更新が試行されます。この操作で更新を試行するインストール済みパッケージの 1 つが、pkg:/entire 制約パッケージです。この例は、すでに高いバージョンでインストールされている 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 制約パッケージのバージョンが、インストールできない 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 制約パッケージによって指定されたバージョンよりも新しいことを示しています。
次のコマンドは、現在インストールされている 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 制約パッケージによって指定されている ub_javavm-incorporation パッケージのバージョンを示しています。システムが更新対象として指定しようとした pkg:/entire 制約パッケージのバージョンは、上記の出力の先頭にある「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 制約パッケージによって必要とされているため、pkg update は失敗します。次のコマンドでは、desktop-incorporation パッケージが pkg:/entire 制約パッケージによって必要とされていることが示されています。
$ 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 制約パッケージによって指定されたバージョンが見つかりませんでした。パッケージをアンインストールすると、更新処理では更新されたパッケージを見つける必要がなくなります。
python-sexy-26 パッケージが必要であってアンインストールすることを望まない場合、pkg:/library/python-2 /python-sexy-26@0.1.9-0.175.0.0.0.1.0 を提供するパッケージリポジトリを検索します。pkg set-publisher コマンドを使用して、そのリポジトリをパブリッシャーの起点の場所に追加するか、pkgrecv コマンドを使用して、そのパッケージを現在設定されているパブリッシャーの起点に追加します。