JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
アプリケーションパッケージ開発者ガイド     Oracle Solaris 10 1/13 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  パッケージの設計

2.  パッケージの構築

3.  パッケージの機能の拡張 (タスク)

4.  パッケージの確認と転送

5.  パッケージ作成のケーススタディー

6.  パッケージの作成のための高度な手法

ベースディレクトリの指定

管理デフォルトファイル

疑問の解決

BASEDIR パラメータの使用

パラメータ型ベースディレクトリの使用

例 -- パラメータ型ベースディレクトリの使用

pkginfo ファイル

pkgmap ファイル

ベースディレクトリの管理

再配置の対応

ベースディレクトリの調査

BASEDIR パラメータの使用

pkginfo ファイル

pkgmap ファイル

例 -- BASEDIR を調査する分析スクリプト

request スクリプト

checkinstall スクリプト

相対パラメータ型パスの使用

pkginfo ファイル

pkgmap ファイル

例 -- 相対パラメータ型パスを調査する request スクリプト

異機種システム混在環境での再配置のサポート

従来のアプローチ

再配置可能パッケージ

例 - 従来の再配置可能パッケージ

pkginfo ファイル

pkgmap ファイル

絶対パッケージ

例 - 従来の絶対パッケージ

pkgmap ファイル

複合パッケージ

例 - 従来の解決方法

pkginfo ファイル

pkgmap ファイル

従来の方法を超えて

複合パッケージの別の側面

再配置可能に見える絶対パス名の作成

例 -- ファイルの変更

説明

実装

例 -- 新しいファイルの作成

説明

実装

例 -- 複合パッケージ

pkginfo ファイル

pkgmap ファイル

リモートでインストール可能なパッケージの作成

例 - クライアントシステムへのインストール

例 - サーバーまたはスタンドアロンシステムへのインストール

例 - 共有ファイルシステムのマウント

パッケージのパッチ

checkinstall スクリプト

preinstall スクリプト

クラスアクションスクリプト

postinstall スクリプト

patch_checkinstall スクリプト

patch_postinstall スクリプト

パッケージのアップグレード

request スクリプト

postinstall スクリプト

クラスアーカイブパッケージの作成

アーカイブパッケージディレクトリの構造

クラスアーカイブパッケージをサポートするキーワード

faspac ユーティリティー

用語集

索引

クラスアーカイブパッケージの作成

クラスアーカイブパッケージは、アプリケーションバイナリインタフェース (ABI) の拡張機能です。これは、特定のファイルセットが単一のファイル (アーカイブ) に結合され、オプションで圧縮または暗号化されたパッケージです。クラスアーカイブ形式は、アクティブな可能性があるファイルシステムに対して、最初のインストールの速度を最大 30% 向上し、パッケージおよびパッチのインストール時の信頼性が改善されます。

次のセクションでは、アーカイブパッケージディレクトリの構造、キーワード、および faspac ユーティリティーについて説明します。

アーカイブパッケージディレクトリの構造

次の図に示すパッケージエントリは、パッケージファイルが含まれるディレクトリを表します。このディレクトリは、パッケージと同じ名前にする必要があります。

図 6-1 パッケージディレクトリ構造

image:図には、パッケージディレクトリの直下に pkginfo、pkgmap、reloc、root、および install の 5 つのサブディレクトリがあります。その下にもサブディレクトリがあります。

パッケージディレクトリに含まれるファイルおよびディレクトリの機能を次に示します。

項目
説明
pkginfo
特別な環境変数およびインストール命令を含めて、パッケージ全体を記述するファイル
pkgmap
インストールされる各オブジェクト (ファイル、ディレクトリ、パイプなど) を記述するファイル
reloc
ベースディレクトリから相対的にインストールされるファイル (再配置可能オブジェクト) が含まれる、オプションのディレクトリ
root
root ディレクトリから相対的にインストールされるファイル (ルートオブジェクト) が含まれる、オプションのディレクトリ
install
スクリプトおよびその他の補助的なファイルが含まれる、オプションのディレクトリ (pkginfo および pkgmap を除き、すべての ftype i ファイルはここに含まれる)

クラスアーカイブ形式では、パッケージビルダにより reloc および root の各ディレクトリからアーカイブにファイルを結合できます。アーカイブは、インストールの速度の向上、パッケージサイズの縮小、またはパッケージのセキュリティの向上のために、圧縮、暗号化、またはその他の任意の方法で処理できます。

ABI により、パッケージ内の任意のファイルをクラスに割り当てることができます。特定のクラス内のすべてのファイルは、クラスアクションスクリプトで定義されるカスタムメソッドを使用してディスクにインストールできます。このカスタムメソッドでは、ターゲットシステムで使用できるプログラムまたはパッケージとともに提供されるプログラムを使用できます。結果の形式は、標準 ABI 形式によく似ています。次の図に示すように、別のディレクトリが追加されます。アーカイブ用ファイルのすべてのクラスは、そのまま単一のファイルに結合され、archive ディレクトリに配置されます。アーカイブされたすべてのファイルが reloc および root の各ディレクトリから削除され、インストールクラスアクションスクリプトが install ディレクトリに配置されます。

図 6-2 アーカイブパッケージディレクトリの構造

image:図の構造では、図 6-1 と同じパッケージディレクトリ構造に archive サブディレクトリが追加されています。

クラスアーカイブパッケージをサポートするキーワード

この新しいクラスアーカイブ形式をサポートするために、pkginfo ファイル内で特殊な意味を持つキーワード形式の新しいインタフェースが 3 つあります。これらのキーワードを使用して、特殊な処理が必要なクラスを指定します。各キーワード文の形式は、 keyword=class1[class2 class3 ...] です。各キーワードの値は、次の表で定義されています。

キーワード
説明
PKG_SRC_NOVERIFY
これは、提供されるパッケージの reloc または root の各ディレクトリ内のファイルが指定されたクラスに属する場合に、pkgadd でファイルの存在とプロパティーを確認しないように指定します。アーカイブされたクラスではファイルが reloc または root のディレクトリ内に存在しないため、このキーワードが必要です。それらのファイルは、archive ディレクトリの非公開形式のファイルです。
PKG_DST_QKVERIFY
これらのクラスのファイルは、インストール後にテキスト出力がほとんどまたはまったくない簡易アルゴリズムを使用して確認されます。簡易確認では、最初に各ファイルの属性を正確に設定して、処理が正常に実行されたかどうかを確認します。pkgmap に対して、ファイルサイズと変更時間のテストも行われます。checksum 検証は実行されず、エラー復旧は標準の検証メカニズムのエラー復旧よりも非力です。インストール時に停電またはディスク障害が発生した場合には、コンテンツファイルがインストールされたファイルと一致しないことがあります。この不一致は、どのような場合でも pkgrm で解決できます。
PKG_CAS_PASSRELATIVE
通常、インストールクラスアクションスクリプトは、インストールするファイルを指定するソースとターゲットのペアの一覧を、stdin から受け取ります。PKG_CAS_PASSRELATIVE に割り当てられたクラスでは、ソースとターゲットのペアが取得されません。その代わりに単一の一覧を受け取ります。この一覧の最初のエントリはソースパッケージの場所で、一覧の残りはターゲットのパスです。これはアーカイブからの抽出を単純化するためです。ソースパッケージの場所から archive ディレクトリのアーカイブを検索できます。ターゲットのパスは、アーカイブのコンテンツを抽出する機能に渡されます。各ターゲットパスは、元のパスが root または reloc のどちらであったかに応じて、絶対パスまたはベースディレクトリからの相対パスのいずれかで指定されます。このオプションを選択すると、相対パスと絶対パスの両方を単一のクラスに結合することは困難な場合があります。

アーカイブされたクラスごとにクラスアクションスクリプトが必要です。これは Bourne シェルコマンドが含まれたファイルで、アーカイブから実際にファイルをインストールするために pkgadd から実行されます。パッケージの install ディレクトリにクラスアクションスクリプトが検出された場合、pkgadd からそのスクリプトにインストールのすべての責任が委任されます。クラスアクションスクリプトは root 権限で実行され、ターゲットシステムの任意の場所にファイルを配置できます。


注 - クラスアーカイブパッケージを実装するために絶対に必要なキーワードは、PKG_SRC_NOVERIFY だけです。ほかのキーワードは、インストールの速度を向上したりコードを保護したりするために使用できます。


faspac ユーティリティー

faspac ユーティリティーは、標準 ABI パッケージを、バンドル版のパッケージで使用されるクラスアーカイブ形式に変換します。このユーティリティーでは、cpio を使用してアーカイブを行い、compress を使用して圧縮を行います。結果のパッケージには、最上位のディレクトリに archive というディレクトリが追加されています。このディレクトリには、クラスごとに名前が付けられたすべてのアーカイブが含まれます。install ディレクトリには、各アーカイブの展開に必要なクラスアクションスクリプトが含まれます。絶対パスはアーカイブされません。

faspac ユーティリティーの形式は次のとおりです。

faspac [-m Archive Method] -a -s -q [-d Base Directory] /
[-x Exclude List] [List of Packages]

次の表で、faspac コマンドの各オプションについて説明します。

オプション
説明
-m アーカイブメソッド

アーカイブまたは圧縮の方法を示します。bzip2 はデフォルトで使用される圧縮ユーティリティーです。zip または unzip に切り替えるには、-m zip を使用します。cpio または compress の場合は、-m cpio を使用します。
-a
属性を固定します (ルートで実行する必要がある)。
-s
標準 ABI 型のパッケージ変換を示します。このオプションは、cpio または圧縮されたパッケージを取り、標準 ABI 準拠のパッケージ形式にします。
-q
非出力モードを示します。
-d ベースディレクトリ
コマンド行で要求される場合にすべてのパッケージの基準になるディレクトリを示します。これは List of Packages エントリとは相互排他的です。
-x 除外リスト
処理から除外するパッケージの、コンマ区切りまたは引用符付きスペース区切りの一覧を示します。
パッケージの一覧
処理されるパッケージの一覧を示します。