JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 での Image Packaging System を使用したソフトウェアのパッケージ化および配布     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

1.  IPS の設計目標、概念、および用語

2.  IPS を使用したソフトウェアのパッケージ化

3.  ソフトウェアパッケージのインストール、削除、および更新

パッケージの変更が行われる方法

入力にエラーがないか確認する

システムの終了状態を決定する

基本的なチェックを実行する

ソルバーを実行する

ソルバーの結果を最適化する

アクションを評価する

内容をダウンロードする

アクションを実行する

アクチュエータを処理する

ブートアーカイブを更新する

4.  パッケージの依存関係の指定

5.  バリエーションの許可

6.  プログラムによるパッケージマニフェストの変更

7.  パッケージインストールの一環としてのシステム変更の自動化

8.  パッケージ更新の高度なトピック

9.  IPS パッケージの署名

10.  非大域ゾーンの処理

11.  発行されたパッケージの変更

A.  パッケージの分類

B.  IPS を使用して Oracle Solaris OS をパッケージ化する方法

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

パッケージの変更が行われる方法

次の手順は、pkg が呼び出されて、マシンにインストールされているソフトウェアを変更するときに実行されます。

これらの手順を大域ゾーンで実行するとき、pkg はシステム上のどの非大域ゾーンでも動作できます。たとえば、pkg は大域ゾーンと非大域ゾーンの間の依存関係が正しいことを確認し、内容をダウンロードして、非大域ゾーンに必要なアクションを実行します。ゾーンについては、第 10 章非大域ゾーンの処理に詳しく説明されています。

入力にエラーがないか確認する

コマンド行に指定されたオプションについて基本的なエラーチェックが行われます。

システムの終了状態を決定する

システムの望ましい終了状態の記述が作成されます。イメージ内のすべてのパッケージを更新する場合、望ましい終了状態は「現在インストールされているすべてのパッケージ、またはそれらの新しいバージョン」のようなものになる可能性があります。パッケージを削除する場合、望ましい終了状態は「これを除く現在インストールされているすべてのパッケージ」となります。

IPS では、ユーザーがこの終了状態をどのようなものであると意図しているかを判断しようとします。場合によっては、IPS では終了状態がユーザーのリクエストしたものと一致していたとしても、その終了状態をユーザーの意図したものではないと判断することがあります。

トラブルシューティングの際は、できるだけ具体的にすることが最善です。次のコマンドは具体的ではありません。

# pkg update

このコマンドが「このイメージに使用できる更新はありません」といったメッセージで失敗する場合は、次のコマンドのようなより具体的なコマンドを試すことをお勧めします。

# pkg update "*@latest"

このコマンドでは、終了状態をより正確に定義しているため、より的を射たエラーメッセージが生成されます。

基本的なチェックを実行する

ソリューションが可能であることを確認するために、システムの望ましい終了状態がレビューされます。この基本的なレビュー中に、pkg はすべての依存関係の妥当なバージョンが存在すること、および目的のパッケージがお互いを除外していないことを確認します。

明らかなエラーが存在する場合、pkg は適切なエラーメッセージを出力して終了します。

ソルバーを実行する

ソルバーは、イメージ内の制約およびインストール用の新しいパッケージによって導入された制約を考慮に入れてインストール、更新、または削除できるパッケージを判断するために pkg(5) によって使用される演算処理エンジンの中核を成しています。

この問題は、ブール型の充足可能性問題の一例であり、SAT ソルバーによって解決できます。

すべてのパッケージの可能性のあるさまざまな選択肢がブール型変数に割り当てられ、それらのパッケージ間のすべての依存関係や必須パッケージなどが論理積正規形のブール式としてキャストされます。

生成された一連の式は MiniSAT に渡されます。MiniSAT がソリューションを 1 つも見つけられない場合は、エラー処理コードが、インストールされた一連のパッケージと試された操作を調べて、可能性のあるそれぞれの選択肢が除外された理由を出力します。

現在インストールされているパッケージのセットは要件を満たしており、ほかに満たしているセットがない場合、pkg は何もすることがないことを報告します。

前述のように、エラーメッセージの生成と具体性は pkg への入力によって決まります。pkg に発行されるコマンド内をできるだけ具体的にすると、もっとも役立つエラーメッセージが生成されます。

MiniSAT が可能性のあるソリューションを見つけた場合は、最適化フェーズが開始されます。

ソルバーの結果を最適化する

SAT ソルバーに対し、あるソリューションがほかのソリューションよりも望ましいと記述する方法はないため、最適化フェーズが必要になります。その代わりに、ソリューションが見つかると、IPS はその問題に制約を加えてあまり望ましくない選択肢を分離し、さらに現在のソリューションも分離します。その後、IPS は繰り返し MiniSAT を呼び出し、ソリューションがそれ以上見つからなくなるまで上記の操作を繰り返します。最後に成功したソリューションが最良のものとみなされます。

ソリューションを見つける難しさは、可能性のあるソリューションの数に比例します。望ましい結果についてより具体的にすると、ソリューションがより迅速に見つかります。

発生した問題をもっともよく満たす一連のパッケージ FMRI が見つかると、評価フェーズが開始されます。

アクションを評価する

評価フェーズでは、IPS はシステムに現在インストールされている、終了状態を含むパッケージを比較し、さらに古いパッケージと新しいパッケージのパッケージマニフェストを比較して、3 つのリストを調べます。

その後、このアクションリストは次の方法で更新されます。

その後、現在インストールされているパッケージが、パッケージの競合がないことを確認するために相互にチェックされます。競合の例には、ファイルを同じ場所に提供する 2 つのパッケージや、異なるディレクトリ属性を持つ同じディレクトリを配布する 2 つのパッケージなどがあります。

競合が存在する場合、その競合は報告され、pkg はエラーメッセージを出して終了します。

最後に、アクションリストがスキャンされて、この操作が行われる場合に SMF サービスを再起動する必要があるかどうか、この変更を実行中のシステムに適用できるかどうか、ブートアーカイブを再構築する必要があるかどうか、そして必要な容量が使用可能であるかどうかが判断されます。

内容をダウンロードする

pkg コマンドを -n フラグなしで実行している場合、処理はダウンロードフェーズへ進みます。

内容を必要とするアクションごとに、IPS は必要なすべてのファイルをハッシュによってダウンロードし、それらをキャッシュに入れます。取り込む内容の量が大きい場合は、この手順にしばらく時間がかかることがあります。

ダウンロードが完了したあと、ライブシステム (/ をルートに持つイメージ) に変更が適用され、さらにリブートが必要とされる場合は、実行中のシステムのクローンが作成され、ターゲットイメージはそのクローンに切り替えられます。

アクションを実行する

アクションの実行では、実際に各アクションタイプに固有のインストールメソッドまたは削除メソッドをイメージに対して実行する必要があります。

実行は、すべての削除アクションの実行から始まります。システムから削除しているディレクトリで予期しない内容が見つかった場合、その内容は /var/pkg/lost+found に入れられます。

次に、実行はインストールおよび更新アクションに進みます。すべてのアクションがすべてのパッケージにわたって混在していることに注意してください。したがって、1 つのパッケージ操作での変更はパッケージごとではなく、システムに同時に適用されます。これにより、パッケージが互いに依存し合ったり、内容を安全に交換したりすることが可能になります。ファイルがどのように更新されるかについての詳細は、「ファイルアクション」を参照してください。

アクチュエータを処理する

変更がライブシステムに適用されている場合、この時点で保留中のアクチュエータがすべて実行されます。これらは一般に SMF サービスの再起動とリフレッシュです。これらが起動されると、IPS はローカルの検索インデックスを更新します。アクチュエータについては、第 7 章パッケージインストールの一環としてのシステム変更の自動化に詳しく説明されています。

ブートアーカイブを更新する

必要に応じて、ブートアーカイブが更新されます。