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.  パッケージの依存関係の指定

依存関係タイプ

require 依存関係

require-any 依存関係

optional 依存関係

conditional 依存関係

group 依存関係

origin 依存関係

incorporate 依存関係

parent 依存関係

exclude 依存関係

制約と凍結

インストール可能なパッケージバージョンの制約

インストール可能なパッケージバージョンに対する制約の緩和

インストール可能なパッケージバージョンの凍結

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

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

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

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

9.  IPS パッケージの署名

10.  非大域ゾーンの処理

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

A.  パッケージの分類

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

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

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

制約と凍結

前述したさまざまな depend アクションを慎重に使用することで、パッケージはそのアップグレードが許可される方法を定義できます。

インストール可能なパッケージバージョンの制約

一般に、システムにインストールされた一連のパッケージのサポートやアップグレードはまとめて行われるのが望ましいことです (セット内のパッケージがすべて更新されるか、セット内のパッケージがどれも更新されないかのどちらか)。これが incorporate 依存関係を使用する理由です。

次の 3 つの部分的なパッケージマニフェストは、foo および bar パッケージと myincorp 結合パッケージの関係を示しています。

次に、foo パッケージマニフェストからの抜粋を示します。

set name=pkg.fmri value=foo@1.0
dir path=foo owner=root group=bin mode=0755
depend fmri=myincorp type=require

次に、bar パッケージマニフェストからの抜粋を示します。

set name=pkg.fmri value=bar@1.0
dir path=bar owner=root group=bin mode=0755
depend fmri=myincorp type=require

次に、myincorp パッケージマニフェストからの抜粋を示します。

set name=pkg.fmri value=myincorp@1.0
depend fmri=foo@1.0 type=incorporate
depend fmri=bar@1.0 type=incorporate

foo および bar パッケージの両方に、myincorp 結合への require 依存関係が含まれています。myincorp パッケージには、次の方法で foo および bar パッケージを制約する incorporate 依存関係が含まれています。

バージョン 1.0 への incorporate 依存関係では、バージョン 1.0.1 や 1.0.2.1 などは許可されますが、バージョン 1.1、2.0、0.9 などは許可されません。incorporate 依存関係を上位バージョンで指定する、更新済みの結合パッケージがインストールされると、foo および bar パッケージはその上位バージョンに更新することを許可されます。

foobar の両方に myincorp パッケージへの require 依存関係が含まれているため、結合パッケージは常にインストールされる必要があります。

インストール可能なパッケージバージョンに対する制約の緩和

状況によっては、結合の制約を緩めた方がよい場合があります。

おそらく barfoo と関係なく機能できますが、foo を、結合の incorporate 依存関係によって定義された一連のバージョン内にとどめておく必要があります。

ファセットを使用すると結合の制約を緩めることができ、それによって管理者は特定の incorporate 依存関係を効果的に無効にできるようになります。ファセットについては、第 5 章バリエーションの許可に詳しく説明されています。簡単に言えば、ファセットとはパッケージ内のアクションに適用して、作成者がそれらのアクションをオプションとしてマーク付けできるようにする特別な属性です。

このようにアクションがファセット属性でマーク付けされると、pkg change-facet コマンドを使用して、それらのファセットを含むアクションを有効または無効にすることができます。

一般に、オプションで incorporate 依存関係をインストールするファセットには facet.version-lock.name という名前が付けられます。ここでは、name はその depend アクションを含むパッケージの名前です。

上記の例を使用すると、myincorp パッケージマニフェストには次の行を含めることができます。

set name=pkg.fmri value=myincorp@1.0
depend fmri=foo@1.0 type=incorporate
depend fmri=bar@1.0 type=incorporate facet.version-lock.bar=true

デフォルトでは、この結合には bar パッケージへの depend アクションが含まれており、bar をバージョン 1.0 に制約しています。この制約は、次のコマンドによって緩和されます。

# pkg change-facet version-lock.bar=false


このコマンドの実行が成功したあとで、bar パッケージは結合の制約から解放され、必要に応じてバージョン 2.0 にアップグレードできます。

インストール可能なパッケージバージョンの凍結

ここまでは、パッケージマニフェストを変更することでパッケージのオーサリングプロセス中に適用される制約について説明してきました。管理者は、実行時に制約をシステムに適用することもできます。

pkg freeze コマンドを使用すると、管理者はある特定のパッケージが、現在インストールされているバージョン (タイムスタンプを含む)、またはコマンド行で指定したバージョンから変更されるのを防ぐことができます。この機能は事実上 incorporate 依存関係と同じです。

freeze コマンドの詳細は、pkg(1) のマニュアルページを参照してください。

さらに複雑な依存関係をイメージに適用するには、それらの依存関係を含むパッケージを作成してインストールします。