Go to main content
Oracle® Solaris 11.3 ソフトウェアの追加と更新

印刷ビューの終了

更新: 2017 年 3 月
 
 

制約を満たすことができない

エラーメッセージ: 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 依存関係のインストール状態が、次のようになっていることがあります。

  • 依存パッケージが異なるバージョンで凍結されている。

  • 依存パッケージが高いバージョンですでにインストールされている。

  • 依存パッケージが別のパブリッシャーからインストールされており、そのパブリッシャーが固定である。

使用例 27  依存関係がロック解除されていて別個に更新される場合の pkg:/entire の更新

次の例ではパッケージ名が指定されていないため、インストール済みのすべてのパッケージの更新が試行されます。この操作で更新を試行するインストール済みパッケージの 1 つが、pkg:/entire 制約パッケージです。この例は、すでに高いバージョンでインストールされている pkg:/entireincorporate 依存関係を示しています。

$ 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*'

ヒント  - --reject 引数を指定するときは注意が必要です。すでにインストール済みで、--reject 引数に一致するすべてのパッケージはアンインストールされます。

インストール済みの依存関係が許容されないときの制約パッケージの更新

エラーメッセージ:

  • 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 コマンドを使用して、そのパッケージを現在設定されているパブリッシャーの起点に追加します。