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.  パッケージ更新の高度なトピック

パッケージ内容の競合の回避

パッケージの名前変更、マージ、および分割

単一パッケージの名前変更

2 つのパッケージのマージ

あるパッケージによる別のパッケージの取り込み

2 つのパッケージの名前変更

パッケージの分割

パッケージの廃止

移行する編集可能ファイルの保持

ディレクトリの削除または名前変更時のパッケージ解除された内容の移動

複数のアプリケーション実装の配布

ブート環境間で共有されるディレクトリの提供

共有ディレクトリに内容を配布する方法

9.  IPS パッケージの署名

10.  非大域ゾーンの処理

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

A.  パッケージの分類

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

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

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

複数のアプリケーション実装の配布

次のような特性を持つ、ある特定のアプリケーションの複数の実装を配布することが必要な場合があります。

複数のアプリケーション実装を配布する例の 1 つに GCC があります。Oracle Solaris では GCC の複数のバージョンを提供しており、各バージョンは独自のパッケージに含まれ、/usr/bin/gcc は優先されるバージョンを指します。

IPS では、調停されたリンクを使用して、1 つのイメージ内で複数のアプリケーション実装を管理します。調停されたリンクとは、pkg set-mediator および pkg unset-mediator コマンドによって制御されるシンボリックリンクです。さまざまなアプリケーション実装を配布するパッケージ内の link アクションは、調停に参加していると考えられています。pkg mediator コマンドはイメージ内の調停を一覧表示します。mediator コマンドについては、pkg(1) のマニュアルページを参照してください。

次の属性を link アクションで設定すると、調停されたリンクの配布方法を制御できます。

mediator

特定の調停グループ (python など) に参加しているすべてのパス名によって共有されている調停名前空間内のエントリを指定します。

リンクの調停は mediator-version および mediator-implementation に基づいて行うことができます。特定のパス名に対する仲介リンクはすべて、同じ mediator を指定する必要があります。ただし、すべてのメディエータバージョンおよび実装が、特定のパスでリンクを提供する必要はありません。調停がリンクを提供していない場合は、その調停が選択されたときにリンクが削除されます。

特定のバージョンまたは実装、あるいはその両方と組み合わせたメディエータは、パッケージシステムで使用するために選択できる調停を表します。

mediator-version

mediator 属性で記述されたインタフェースのバージョン (負でない整数のドットで区切られた並びとして表現) を指定します。この属性は、mediator が指定され、mediator-implementation は指定されていない場合に必要です。ローカルシステム管理者は、使用するバージョンを明示的に設定できます。指定した値は一般に、そのリンクを配布するパッケージのバージョンに一致するようにしてください。たとえば、runtime/python-26mediator-version=2.6 を使用するようにします (ただし、これは必須ではありません)。

mediator-implementation

メディエータの実装を指定します。この属性は、mediator-version 属性に加えて、またはその代わりに指定できます。実装の文字列は順序付けられているとはみなされません。システム管理者によって明示的に指定されていない場合は、pkg(5) によって文字列が任意に選択されます。

mediator-implementation の値は、英数字と空白で構成された任意の長さの文字列にすることができます。実装自体をバージョン管理できるか、または実際にバージョン管理されている場合は、文字列の最後の @ 記号のあとにバージョンを指定します。このバージョンは、負でない整数のドットで区切られた並びです。実装の複数のバージョンが存在する場合、デフォルトの動作では、最上位バージョンを持つ実装が選択されます。

特定のパスにある実装調停リンクのインスタンスが 1 つしかシステムにインストールされていない場合は、それが自動的に選択されます。このパスにある将来のリンクがインストールされても、ベンダー、サイト、またはローカルのオーバーライドが適用されないかぎり、またはいずれかのリンクがバージョン仲介である場合、このリンクは切り替えられません。

mediator-priority

調停されたリンクの競合を解決する場合、pkg(5) は可能なかぎり、mediator-version の最大の値を持つリンクを選択します。それが不可能な場合、pkg(5) は mediator-implementation に基づいてリンクを選択します。mediator-priority 属性は、正常な競合解決処理のためのオーバーライドを指定するために使用されます。mediator-priority 属性が指定されていない場合は、デフォルトのメディエータ選択ロジックが適用されます。

mediator-priority 属性は、次のいずれかの値を持ちます。

vendor

このリンクは、mediator-priority が指定されていないリンクより優先されます。

site

このリンクは、vendor の値を持つリンクや、mediator-priority が指定されていないリンクより優先されます。

ローカルシステム管理者は、上で説明した選択ロジックをオーバーライドできます。

マニフェスト例からの次の 2 つの抜粋では、リンク /usr/bin/myapp の調停に参加しています。実装 1 はバージョン 5.8.4 です。

set name=pkg.fmri value=pkg://test/myapp-impl-1@1.0,5.11:20120721T035233Z
file path=usr/myapp/5.8.4/bin/myapp group=sys mode=0755 owner=root
link path=usr/bin/myapp target=usr/myapp/5.8.4/bin/myapp mediator=myapp mediator-version=5.8.4

実装 2 はバージョン 5.12 です。

set name=pkg.fmri value=pkg://test/myapp-impl-2@1.0,5.11:20120721T035239Z
file path=usr/myapp/5.12/bin/myapp group=sys mode=0755 owner=root
link path=usr/bin/myapp target=usr/myapp/5.12/bin/myapp mediator=myapp mediator-version=5.12

これらのパッケージの両方を同じイメージにインストールできます。

$ pkg list myapp-impl-1 myapp-impl-2
NAME (PUBLISHER)                  VERSION      IFO
myapp-impl-1                      1.0          i--
myapp-impl-2                      1.0          i--

pkg mediator コマンドを使用して、使用中の調停を表示します。

$ pkg mediator
MEDIATOR VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
myapp    local     5.12    system
$ ls -al usr/bin/myapp
lrwxrwxrwx 1 root sys 23 Jul 21 16:58 usr/bin/myapp -> usr/myapp/5.12/bin/myapp

pkg search コマンドを使用して、myapp 調停に参加しているほかのパッケージを調べます。

$ pkg search -ro path,target,mediator,mediator-version,pkg.shortfmri ::mediator:myapp
PATH          TARGET                    MEDIATOR MEDIATOR-VERSION PKG.SHORTFMRI
usr/bin/myapp usr/myapp/5.12/bin/myapp  myapp    5.12             pkg:/myapp-impl-2@1.0
usr/bin/myapp usr/myapp/5.8.4/bin/myapp myapp    5.8.4            pkg:/myapp-impl-1@1.0

pkg set-mediator コマンドを使用して、その調停を変更します。次の例では、優先バージョンにする myapp のバージョンを変更します。

# pkg set-mediator -V 5.8.4 myapp
            Packages to update: 2
           Mediators to change: 1
       Create boot environment: No
Create backup boot environment: No

PHASE                                   ITEMS
Removing old actions                      2/2
Updating modified actions                 2/2
Updating image state                     Done
Creating fast lookup database            Done
Reading search index                     Done
Updating search index                     2/2
# ls -al usr/bin/myapp
lrwxrwxrwx  1 root    sys    24 Jul 21 17:02 usr/bin/myapp -> usr/myapp/5.8.4/bin/myapp