Oracle® Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布

印刷ビューの終了

更新: 2014 年 7 月
 
 

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

この付録では、Oracle が IPS 機能を使用して Oracle Solaris OS をパッケージ化する方法、および依存関係のさまざまなタイプを使用してその OS 用の作業用パッケージセットを定義する方法について説明します。

この付録には、IPS を使用して複雑なソフトウェアセットを管理する具体的な例も記載されています。

Oracle Solaris パッケージのバージョン管理

パッケージ識別子: FMRIでは、バージョンフィールドを使用してさまざまなソフトウェア開発モデルをサポートする方法など、pkg.fmri 属性とバージョンフィールドの各種コンポーネントについて説明しました。このセクションでは、Oracle Solaris OS によるバージョンフィールドの使用方法について説明し、きめの細かいバージョン管理スキームが役立つことがある理由を明らかにします。パッケージでは、Oracle Solaris OS が使用するのと同じバージョン管理スキームに従う必要はありません。

次のサンプルパッケージ FMRI のバージョン文字列の各部の意味は下記のとおりです。

pkg://solaris/system/library@0.5.11,5.11-0.175.1.0.0.2.1:20120919T082311Z
0.5.11

コンポーネントバージョン。Oracle Solaris OS の一部であるパッケージの場合、これは OS major.minor バージョンです。ほかのパッケージでは、これはアップストリームバージョンです。たとえば、次の Apache Web サーバーパッケージのコンポーネントバージョンは 2.2.22 です。

pkg:/web/server/apache-22@2.2.22,5.11-0.175.1.0.0.2.1:20120919T122323Z
5.11

ビルドバージョン。これは、このパッケージが構築される OS リリースを定義するために使用されます。Oracle Solaris 11 用に作成されたパッケージのビルドバージョンは必ず 5.11 になります。

0.175.1.0.0.2.1

ブランチバージョン。Oracle Solaris パッケージでは、パッケージ FMRI のバージョン文字列のブランチバージョン部分に次の情報が示されます。

0.175

メジャーリリース番号。メジャーまたはマーケティング開発リリースのビルド番号。この例では、0.175 は Oracle Solaris 11 を示します。

1

更新リリース番号。この Oracle Solaris リリースの更新リリース番号。更新値は、Oracle Solaris リリースの FCS (First Customer Shipment) では 0、そのリリースの最初の更新では 1、そのリリースの 2 回目の更新では 2 というようになります。この例では、1 は Oracle Solaris 11.1 を示します。

0

SRU 番号。この更新リリースのサポート・リポジトリの更新 (SRU) 番号。SRU にはバグ修正のみが入っており、新しい機能は含まれていません。Oracle サポート・リポジトリはサポート契約下のシステムでのみ使用できます。

0

予約済み。このフィールドは現在 Oracle Solaris パッケージには使用されていません。

2

SRU ビルド番号。SRU のビルド番号、またはメジャーリリースの更新番号。

1

ナイトリービルド番号。個々のナイトリービルドのビルド番号。

20120919T082311Z

タイムスタンプ。このタイムスタンプは、パッケージが発行されたときに定義されたものです。

Oracle Solaris 結合パッケージ

Oracle Solaris は一連のパッケージによって配布され、パッケージの各グループは結合の制約を受けます。

それぞれの結合はパッケージの各グループを開発した組織を大まかに表しますが、パッケージそのものの内部にはいくつかの結合間依存関係があります。Oracle Solaris には次の結合パッケージがあります (pkg list *incorporation)。

pkg:/consolidation/SunVTS/SunVTS-incorporation
pkg:/consolidation/X/X-incorporation
pkg:/consolidation/admin/admin-incorporation
pkg:/consolidation/cacao/cacao-incorporation
pkg:/consolidation/cde/cde-incorporation
pkg:/consolidation/cns/cns-incorporation
pkg:/consolidation/dbtg/dbtg-incorporation
pkg:/consolidation/desktop/desktop-incorporation
pkg:/consolidation/desktop/gnome-incorporation
pkg:/consolidation/gfx/gfx-incorporation
pkg:/consolidation/install/install-incorporation
pkg:/consolidation/ips/ips-incorporation
pkg:/consolidation/java/java-incorporation
pkg:/consolidation/jdmk/jdmk-incorporation
pkg:/consolidation/l10n/l10n-incorporation
pkg:/consolidation/ldoms/ldoms-incorporation
pkg:/consolidation/man/man-incorporation
pkg:/consolidation/nspg/nspg-incorporation
pkg:/consolidation/nvidia/nvidia-incorporation
pkg:/consolidation/osnet/osnet-incorporation
pkg:/consolidation/sfw/sfw-incorporation
pkg:/consolidation/sic_team/sic_team-incorporation
pkg:/consolidation/solaris_re/solaris_re-incorporation
pkg:/consolidation/sunpro/sunpro-incorporation
pkg:/consolidation/ub_javavm/ub_javavm-incorporation
pkg:/consolidation/userland/userland-incorporation
pkg:/consolidation/vpanels/vpanels-incorporation
pkg:/consolidation/xvm/xvm-incorporation

これらの各結合には次の情報が含まれています。

  • パッケージのメタデータ。

  • incorporate タイプの依存関係。ある特定のアーキテクチャーに固有の依存関係を示す variant.arch バリアントが含まれることがあります。incorporate 依存関係と variant.arch バリアントの詳細は、incorporate 依存関係および 相互に排他的なソフトウェアコンポーネントを参照してください。

  • 結合がインストールされるときにライセンスが表示されるようにする license アクション。license アクションの詳細は、ライセンスアクションを参照してください。

システムに配布された各パッケージには、これらのいずれかの結合への require 依存関係が含まれています。詳細は、require 依存関係を参照してください。

Oracle Solaris には entire という名前の特別な結合も含まれています。entire 結合は、各結合パッケージへの requireincorporate の両方の依存関係を含めることにより、ほかのすべての結合を同じビルドに制限します。このようにして、entire 結合はすべてのパッケージが 1 つのグループとしてアップグレードされるようにソフトウェアサーフェスを定義します。

依存関係の制約の緩和

上記に示した結合の中には、facet.version-lock.* ファセットを使用して、管理者が pkg change-facet コマンドを使って指定のパッケージの結合に対する制約を緩和できるようにするものがあります。詳細は、インストール可能なパッケージバージョンに対する制約の緩和を参照してください。

たとえば、pkg:/consolidation/userland/userland-incorporation パッケージには次の facet.version-lock.* 定義が含まれています。

..
depend type=incorporate \
    fmri=pkg:/library/python-2/subversion@1.6.16-0.175.0.0.0.2.537 \
    facet.version-lock.library/python-2/subversion=true
depend type=incorporate \
    fmri=pkg:/library/security/libassuan@2.0.1-0.175.0.0.0.2.537 \
    facet.version-lock.library/security/libassuan=true
depend type=incorporate \
    fmri=pkg:/library/security/openssl/openssl-fips-140@1.2-0.175.0.0.0.2.537 \
    facet.version-lock.library/security/openssl/openssl-fips-140=true
depend type=incorporate fmri=pkg:/mail/fetchmail@6.3.21-0.175.0.0.0.2.537 \
    facet.version-lock.mail/fetchmail=true
depend type=incorporate \
    fmri=pkg:/network/chat/ircii@0.2006.7.25-0.175.0.0.0.2.537 \
    facet.version-lock.network/chat/ircii=true
depend type=incorporate \
    fmri=pkg:/print/cups/filter/foomatic-db-engine@0.20080903-0.175.0.0.0.2.537 \
    facet.version-lock.print/cups/filter/foomatic-db-engine=true
depend type=incorporate \
    fmri=pkg:/print/filter/gutenprint@5.2.4-0.175.0.0.0.2.537 \
    facet.version-lock.print/filter/gutenprint=true
depend type=incorporate fmri=pkg:/runtime/erlang@12.2.5-0.175.0.0.0.2.537 \
facet.version-lock.runtime/erlang=true
    ..

entire パッケージには version-lock ファセットも含まれています。この場合、それらのファセットによって指定の結合を entire 結合から削除できるようになります。ただし、これによってサポートの対象とならないシステムになる可能性があります。そのようなパッケージは、Oracle サポート担当者からのアドバイスを受けてロック解除するしかありません。

Oracle Solaris グループパッケージ

Oracle Solaris では、group 依存関係を含むいくつかのグループパッケージを定義しています。group 依存関係の詳細は、group 依存関係を参照してください。これらのグループパッケージを使用すると、共通のパッケージセットをインストールするときに便利です。

Oracle Solaris で提供されるグループパッケージを次に示します。

$ pkg list -Has 'pkg:/group/*'
group/feature/amp                                  AMP (Apache, MySQL, PHP) Deployment Kit for Oracle Solaris
group/feature/developer-gnu                        GNU Development Tools for Oracle Solaris
group/feature/multi-user-desktop                   Oracle Solaris Multi User Desktop
group/feature/storage-avs                          Sun StorageTek Availability Suite
group/feature/storage-nas                          Network attached storage group package
group/feature/storage-server                       Multi protocol storage server group package
group/feature/trusted-desktop                      Oracle Solaris Trusted Desktop
group/system/management/rad/rad-client-interfaces  RAD client bindings group package
group/system/management/rad/rad-server-interfaces  RAD server modules group package
group/system/solaris-auto-install                  Oracle Solaris Automated Installer Client
group/system/solaris-core-platform                 Oracle Solaris Core Platform
group/system/solaris-desktop                       Oracle Solaris Desktop
group/system/solaris-large-server                  Oracle Solaris Large Server
group/system/solaris-minimal-server                Oracle Solaris Minimal Server
group/system/solaris-small-server                  Oracle Solaris Small Server

solaris-small-server グループパッケージは、非大域ゾーン (/usr/share/auto_install/manifest/zone_default.xml ) のインストールに使用されるデフォルトの AI マニフェストによってインストールされます。詳細は、solaris(5) を参照してください。

属性とタグ

このセクションでは、一般的な属性、Oracle Solaris アクション属性、および Oracle Solaris 属性タグについて説明します。

情報属性

次の属性は正しいパッケージインストールに不可欠ではありませんが、取り決めを共有すると、パブリッシャーとユーザーの間で起きる混乱が少なくなります。

info.classification

info.classification 属性については、設定アクションを参照してください。Appendix A, パッケージの分類の分類のリストを参照してください。

info.keyword

検索によってこのパッケージが返される追加の用語のリスト。

info.maintainer

パッケージを提供するエンティティーについて説明する、人間が読める文字列。この文字列は、個人の名前、個人の名前と電子メール、または組織の名前にします。

info.maintainer-url

パッケージを提供するエンティティーに関連付けられた URL。

info.upstream

ソフトウェアを作成するエンティティーについて説明する、人間が読める文字列。この文字列は、個人の名前、個人の名前と電子メール、または組織の名前にします。

info.upstream-url

パッケージで配布されるソフトウェアを作成するエンティティーに関連付けられた URL。

info.source-url

パッケージのソースコードバンドルへの URL (該当する場合)。

info.repository-url

パッケージのソースコードリポジトリへの URL (該当する場合)。

info.repository-changeset

info.repository-url に含まれるソースコードのバージョンのチェンジセット ID。

Oracle Solaris 属性

org.opensolaris.arc-caseid

ARC ケース (Architecture Review Committee)、またはパッケージによって配布されたコンポーネントに関連付けられたケースに関連付けられた 1 つ以上のケース識別子 (PSARC/2008/190 など)。

org.opensolaris.smf.fmri

このパッケージによって配布された SMF サービスを表す 1 つ以上の FMRI。これらの属性は、SMF サービスマニフェストを含むパッケージの pkgdepend によって自動的に生成されます。pkgdepend(1) のマニュアルページを参照してください。

組織固有の属性

パッケージに追加のメタデータを提供するには、属性名に組織固有の接頭辞を使用します。組織はこの方法を使用して、その組織で開発されたパッケージに追加のメタデータを提供したり、既存のパッケージのメタデータを変更したりできます。既存のパッケージのメタデータを変更するには、そのパッケージが発行されるリポジトリを制御する必要があります。たとえば、サービス組織は service.example.com,support-level または com.example.service,support-level という名前の属性を導入して、パッケージとその内容のサポートのレベルを記述できます。

Oracle Solaris タグ

variant.opensolaris.zone

非大域ゾーン、大域ゾーン、または非大域ゾーンと大域ゾーンのどちらかにインストールできるパッケージ内のアクションを指定します。詳細は、Chapter 10, 非大域ゾーンの処理を参照してください。