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

ドキュメントの情報

はじめに

1.  パッケージの設計

2.  パッケージの構築

パッケージの構築プロセス (タスクマップ)

パッケージ環境変数

環境変数の使用に関する一般的な規則

パッケージ環境変数のサマリー

pkginfo ファイルの作成

パッケージインスタンスの定義

パッケージの省略名の定義 (PKG)

パッケージアーキテクチャーの指定 (ARCH)

パッケージの命令セットアーキテクチャーの指定 (SUNW_ISA)

パッケージのバージョンの指定 (VERSION)

パッケージ名の定義 (NAME)

パッケージカテゴリの定義 (CATEGORY)

pkginfo ファイルの作成方法

パッケージのコンテンツの編成

パッケージのコンテンツの編成方法

prototype ファイルの作成

prototype ファイルの形式

ftype フィールド

class フィールド

path フィールド

集合的再配置可能オブジェクト

個別再配置可能オブジェクト

パラメータ型パス名

オブジェクトのソースおよびターゲットの場所の簡略な記述

mode フィールド

owner フィールド

group フィールド

prototype ファイルを最初から作成する

例--pkgproto コマンドを使用した prototype ファイルの作成

pkgproto コマンドで作成した prototype ファイルの微調整

ファイルタイプ vex、および i を指定したオブジェクトのエントリの作成

複数のクラス定義の使用

例--pkgproto コマンドを使用して作成した prototype ファイルの微調整

prototype ファイルへの機能の追加

インストール時に作成される追加のオブジェクトの定義

インストール時のリンクの作成

複数のボリュームにわたるパッケージの配布

prototype ファイルの入れ子化

mode フィールド、owner フィールド、および group フィールドのデフォルト値の設定

pkgmk コマンドの検索パスの指定

環境変数の設定

pkgproto コマンドを使用して prototype ファイルを作成する方法

パッケージの構築

最も簡単な pkgmk コマンドの使用

pkgmap ファイル

パッケージの構築方法

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

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

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

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

用語集

索引

prototype ファイルの作成

prototype ファイルは、パッケージ内のオブジェクトに関する情報を指定するのに使用する ASCII ファイルです。prototype ファイルの各エントリには、データファイル、ディレクトリ、ソースファイル、実行可能オブジェクトなど、単一のオブジェクトが記述されます。prototype ファイルのエントリは、空白で区切られた、複数のフィールドによる情報で構成されます。これらのフィールドは、特定の順序で表示されるようにしてください。注釈行はポンド記号 (#) で始まり、無視されます。

prototype ファイルは、テキストエディタまたは pkgproto コマンドを使用して作成できます。このファイルをはじめて作成する場合、以前作成したディレクトリ階層に基づいてファイルを作成する pkgproto コマンドで作成したほうが簡単でしょう。「パッケージのコンテンツの編成」で説明されているとおりにファイルを編成していない場合、任意のテキストエディタで prototype ファイルを最初から作成する手間がかかります。

prototype ファイルの形式

prototype ファイルでの各行の形式を次に示します。

partftypeclasspathmajorminormodeownergroup
part
パッケージオブジェクトを細かくグループ化できる、オプションの数値フィールドです。デフォルト値は part 1 です。
ftype
オブジェクトの種類を指定する、1 文字のフィールドです。「ftype フィールド」を参照してください。
クラス
オブジェクトが属するインストールクラスです。class フィールド」を参照してください。
path
パッケージオブジェクトがターゲットシステムに存在する場所を示す、絶対パス名または相対パス名です。path フィールド」を参照してください。
major
ブロック特殊デバイスまたは文字特殊デバイスのためのメジャーデバイス番号です。
minor
ブロック特殊デバイスまたは文字特殊デバイスのためのマイナーデバイス番号です。
mode
オブジェクトの 8 進数モードです (例: 0644)。mode フィールド」を参照してください。
owner
オブジェクトの所有者です (例: bin または root)。owner フィールド」を参照してください。
group
オブジェクトが属するグループです (例: bin または sys)。group フィールド」を参照してください。

通常では、ftype フィールド、class フィールド、path フィールド、mode フィールド、owner フィールド、および group フィールドだけを定義します。これらのフィールドについては、次のセクションで説明します。これらのフィールドに関する追加情報については、prototype(4) のマニュアルページを参照してください。

ftype フィールド

ftype (ファイルタイプ) フィールドは 1 文字のフィールドであり、パッケージオブジェクトのファイルタイプを指定します。次の表は、有効なファイルタイプについて説明しています。

表 2-3 prototype ファイルの有効なファイルタイプ

ファイルタイプのフィールド値
ファイルタイプの説明
f
標準の実行可能ファイルまたはデータファイル
e
インストールまたは削除時に編集するファイル (複数のパッケージで共有する可能性があります)
v
揮発性ファイル (このコンテンツは変更することが想定されています。例: ログファイル)
d
ディレクトリ
x
このパッケージでのみアクセスできる排他的なディレクトリ (登録されていないログやデータベース情報を含む可能性があります)
l
リンクファイル
p
名前付きパイプ
c
文字特殊デバイス
b
ブロック特殊デバイス
i
情報ファイルまたはインストールスクリプト
s
シンボリックリンク

class フィールド

class フィールドは、オブジェクトが属するクラスを指定します。クラスの使用は、オプションのパッケージ設計機能です。この機能は、 「クラスアクションスクリプトの書き込み」で詳細に説明されています。

クラスを使用しない場合、オブジェクトは none クラスに属します。pkgmk コマンドを実行してパッケージを構築すると、コマンドによって CLASSES=none パラメータがpkginfo ファイルに挿入されます。ファイルタイプ i が指定されたファイルには、空白の class フィールドが 1 つ含まれます。

path フィールド

path フィールドは、パッケージオブジェクトがターゲットシステムに存在する場所を定義するために使用されます。絶対パス名 (例: /usr/bin/mail) または相対パス名(例: bin/mail) を使用して場所を示すことができます。絶対パス名を使用すると、ターゲットシステム上のオブジェクトの場所はパッケージによって定義され、変更できません。パッケージオブジェクトに相対パス名が含まれる場合、オブジェクトが再配置可能になります。

再配置可能オブジェクトには、ターゲットシステム上の絶対パスの場所は必要ありません。代わりに、オブジェクトの場所はインストールプロセス中に決定されます。

パッケージのオブジェクトのすべてまたは一部を再配置可能として定義できます。インストールスクリプトを記述したり、prototype ファイルを作成したりする前に、パッケージオブジェクトの場所を固定 (/etc 内の起動スクリプトなど) するか、または再配置可能にするかを決定します。

再配置可能オブジェクトには、集合的再配置可能個別再配置可能の 2 種類があります。

集合的再配置可能オブジェクト

集合的再配置可能オブジェクトは、ベースディレクトリと呼ばれる共通のインストールベースに対して配置されます。ベースディレクトリは、BASEDIR パラメータを使用して pkginfo ファイルに定義されます。たとえば、tests/generic という名前の prototype ファイル内にある再配置可能オブジェクトは、pkginfo ファイルにデフォルトの BASEDIR パラメータが定義されていることを必要とします。例:

BASEDIR=/opt

この例の場合、オブジェクトをインストールすると、そのオブジェクトは /opt/tests/generic ディレクトリに配置されます。


注 - /opt ディレクトリは、基本 Oracle Solaris ソフトウェアの一部ではないソフトウェアの配信先となる可能性のある唯一のディレクトリです。


できる限り、集合的再配置可能オブジェクトを使用してください。通常、ほとんどのパッケージは、絶対パスで指定された一部のファイル (/etc or /var 内のファイルなど) で再配置できます。ただし、パッケージに多くの異なる再配置が含まれる場合には、pkginfo ファイル内で個別の BASEDIR 値を指定してパッケージを複数のパッケージに分割することを検討してください。

個別再配置可能オブジェクト

個別再配置可能オブジェクトは、集合的再配置可能オブジェクトと同じディレクトリの場所に制限されません。個別再配置可能オブジェクトを定義するには、prototype ファイル内の path フィールドにインストール変数を指定する必要があります。インストール変数を指定したら、インストーラに対して再配置可能なベースディレクトリを要求する request スクリプトを作成するか、ファイルシステムデータからパス名を決定する checkinstall スクリプトを作成します。request スクリプトについては、request スクリプトの書き込み」を参照してください。また、checkinstall スクリプトについては、「ファイルシステムデータを収集する方法」を参照してください。


注意

注意 - 個別再配置可能オブジェクトは管理が困難です。個別再配置可能オブジェクトを使用すると、パッケージコンポーネントが広範囲に分散する場合があり、パッケージの複数のバージョンまたはアーキテクチャーをインストールする場合にコンポーネントを特定するのが困難になります。できる限り、集合的再配置可能オブジェクトを使用してください。


パラメータ型パス名

パラメータ型パス名は、変数指定が含まれるパス名です。たとえば、/opt/$PKGINST/filenameは、$PKGINST という変数指定があるのでパラメータ型のパス名になります。変数指定のデフォルト値を pkginfo ファイルに定義します。この値は、request スクリプトまたは checkinstall スクリプトで変更される可能性があります。

パス内の変数指定は、パス名で開始または終了するか、斜線 (/) で囲みます。有効なパラメータ型パス名は、次のような形式をとります。

$PARAM/tests
tests/$PARAM/generic
/tests/$PARAM

変数指定を定義すると、パスは絶対パスまたは再配置可能なパスとして評価される可能性があります。次の例では、prototype ファイルに次のようなエントリが含まれます。

f none $DIRLOC/tests/generic

pkginfo ファイルには、次のエントリが含まれます。

DIRLOC=/myopt

パス名 $DIRLOC/tests/generic は、BASEDIR パラメータが pkginfo ファイルに設定されているかどうかに関係なく、絶対パス名 /myopt/tests/generic と評価されます。

この例では、prototype ファイルは前の例のものと同一であり、pkginfo ファイルには次のエントリが含まれます。

DIRLOC=firstcut
BASEDIR=/opt

パス名 $DIRLOC/tests/generic は、再配置可能なパス名 /opt/firstcut/tests/generic と評価されます。

パラメータ型のパス名については、「パラメータ型ベースディレクトリの使用」を参照してください。

オブジェクトのソースおよびターゲットの場所の簡略な記述

prototype ファイル内の path フィールドは、オブジェクトがターゲットシステムに配置される場所を定義します。パッケージオブジェクトのディレクトリ構造がターゲットシステム上で意図された構造を模倣していない場合、prototype ファイル内でのパッケージオブジェクトの現在の場所を指定します。パッケージ内でのオブジェクトの構造化については、「パッケージのコンテンツの編成」を参照してください。

パッケージの目的の構造と同じように開発領域が構造化されていない場合、path フィールドで path1=path2 という形式を使用できます。この形式では、path1 はターゲットシステム上でのオブジェクトの場所であり、path2 は使用中のシステム上でのオブジェクトの場所です。

また、path1=path2 というパス名の形式を使用する場合、path1 を再配置可能なオブジェクト名に指定し、使用中のシステム上での対象のオブジェクトへのフルパス名に path2 を指定することもできます。


注 - path1 には、未定義の構築変数を含むことはできませんが、未定義のインストール変数は含むことができます。path2 では、構築変数とインストール変数の両方を使用することができますが、未定義の変数を含むことはできません。インストール変数と構築変数の違いについては、「パッケージ環境変数」を参照してください。


リンクは pkgadd コマンドで作成するので、リンクには path1= path2 形式を使用します。一般的な規則として、リンクの path2 は絶対リンクにはせず、path1 のディレクトリの一部を基準とした相対リンクにするようにしてください。

path1=path2 形式の代わりに、!search コマンドを使用することもできます。詳細については、pkgmk コマンドの検索パスの指定」を参照してください。

mode フィールド

mode フィールドには、8 進数、疑問符 (?)、または変数指定を含める可能性があります。8 進数は、ターゲットシステムにオブジェクトをインストールするときにオブジェクトのモードを指定します。? は、オブジェクトのインストール時にモードを変更しないことを示します。つまり、同じ名前のオブジェクトがターゲットシステム上にすでに存在することを意味します。

変数指定の形式 $mode では、変数の最初の文字を小文字で記述し、対象のフィールドはパッケージの構築時に設定されます。この変数は、prototype ファイルの作成時、または pkgmk コマンドのオプションとしての作成時に定義します。インストール変数と構築変数の違いについては、「パッケージ環境変数」を参照してください。

ファイルタイプ i (情報ファイル)、l (ハードリンク)、および s (シンボリックリンク) が指定されたファイルでは、このフィールドを空白のままにしてください。

owner フィールド

owner フィールドには、ユーザー名、疑問符 (?)、または変数指定を含める可能性があります。ユーザー名は、最大 14 文字であり、ターゲットシステム上にすでに存在する名前にしてください (bin または root など)。? は、オブジェクトのインストール時に所有者を変更しないことを示します。つまり、同じ名前のオブジェクトがターゲットシステム上にすでに存在することを意味します。

変数指定は、$Owner または $owner の形式 (変数の最初の文字が大文字または小文字) を使用できます。変数が小文字で始まる場合、prototype ファイル内または pkgmk コマンドのオプションとして、パッケージの構築時に変数が定義されます。変数が大文字で始まる場合、変数指定は pkginfo ファイルにデフォルト値として挿入され、インストール時に request スクリプトによって再定義される可能性があります。インストール変数と構築変数の違いについては、「パッケージ環境変数」を参照してください。

ファイルタイプ i (情報ファイル) と l (ハードリンク) が指定されたファイルでは、このフィールドを空白のままにしてください。

group フィールド

group フィールドには、グループ名、疑問符 (?)、または変数指定を含める可能性があります。グループ名は、最大 14 文字であり、ターゲットシステム上にすでに存在する名前にしてください (bin または sys など)。? は、オブジェクトのインストール時にグループを変更しないことを示します。つまり、同じ名前のオブジェクトがターゲットシステム上にすでに存在することを意味します。

変数指定は、$Group または $group の形式 (変数の最初の文字が大文字または小文字) を使用できます。変数が小文字で始まる場合、prototype ファイル内または pkgmk コマンドのオプションとして、パッケージの構築時に変数が定義されます。変数が大文字で始まる場合、変数指定は pkginfo ファイルにデフォルト値として挿入され、インストール時に request スクリプトによって再定義される可能性があります。インストール変数と構築変数の違いについては、「パッケージ環境変数」を参照してください。

ファイルタイプ i (情報ファイル) と l (ハードリンク) が指定されたファイルでは、このフィールドを空白のままにしてください。

prototype ファイルを最初から作成する

prototype ファイルを最初から作成する場合、任意のテキストエディタでファイルを作成し、パッケージオブジェクトごとにエントリを 1 つ追加できます。prototype ファイルの形式については、prototype ファイルの形式」prototype(4) のマニュアルページを参照してください。ただし、各パッケージオブジェクトを定義したあとには、prototype ファイルへの機能の追加」で説明されている機能をいくつか組み込むことが必要になる場合もあります。

例—pkgproto コマンドを使用した prototype ファイルの作成

Organizing a Package's Contentsで説明されているとおりにパッケージディレクトリ構造を編成している限り、pkgproto コマンドを使用して基本的な 「パッケージのコンテンツの編成」 ファイルを作成できます。たとえば、前のセクションで説明したディレクトリ構造のサンプルと pkginfo ファイルを使用すると、prototype ファイルを作成するコマンドは次のようになります。

$ cd /home/jane
$ pkgproto ./SUNWcadap > InfoFiles/prototype

この prototype ファイルの内容は次のとおりです。

d none SUNWcadap 0755 jane staff
d none SUNWcadap/demo 0755 jane staff
f none SUNWcadap/demo/file1 0555 jane staff
d none SUNWcadap/srcfiles 0755 jane staff
f none SUNWcadap/srcfiles/file5 0555 jane staff
f none SUNWcadap/srcfiles/file6 0555 jane staff
d none SUNWcadap/lib 0755 jane staff
f none SUNWcadap/lib/file2 0644 jane staff
d none SUNWcadap/man 0755 jane staff
f none SUNWcadap/man/windex 0644 jane staff
d none SUNWcadap/man/man1 0755 jane staff
f none SUNWcadap/man/man1/file4.1 0444 jane staff
f none SUNWcadap/man/man1/file3.1 0444 jane staff

注 - パッケージ作成者の実際の所有者とグループは、pkgproto コマンドによって記録されます。pkgproto コマンドを実行する前にchown -R コマンドと chgrp -R コマンドを使用して、希望の所有者とグループを設定することをお勧めします。


なお、この例の prototype ファイルはまだ完成されていません。このファイルを完成するには、次のセクションを参照してください。

pkgproto コマンドで作成した prototype ファイルの微調整

pkgproto コマンドは、初期の prototype ファイルを作成するのに役立ちますが、定義が必要な各パッケージオブジェクトのエントリは作成しません。このコマンドでは、エントリは完了されません。pkgproto コマンドは、次のどちらの処理も実行しません。

ファイルタイプ vex、および i を指定したオブジェクトのエントリの作成

少なくとも、prototype ファイルを変更して、ファイルタイプ i を指定したオブジェクトを追加する必要があります。情報ファイルとインストールスクリプトをパッケージディレクトリの最初のレベルに格納した場合 (例: /home/jane/SUNWcadap/pkginfo)、prototype ファイル内のエントリは次のようになります。

i pkginfo

情報ファイルとインストールスクリプトをパッケージディレクトリの最初のレベルに格納しなかった場合、それらのソースの場所を指定する必要があります。例:

i pkginfo=/home/jane/InfoFiles/pkginfo

あるいは、!search コマンドを使用して、パッケージの構築時に pkgmk コマンドの場所を検索するように指定できます。詳細については、pkgmk コマンドの検索パスの指定」を参照してください。

ファイルタイプ ve、および x を指定したオブジェクトのエントリを追加するには、prototype ファイルの形式」で説明されている形式に従うか、prototype(4) のマニュアルページを参照してください。


注 - 必ず、e (編集可能) のファイルタイプを指定したファイルにクラスを割り当て、そのクラスの関連するクラスアクションスクリプトを含めるようにしてください。そのようにしない場合、パス名がその他のパッケージと共有されていても、パッケージの削除時にこれらのファイルも削除されます。


複数のクラス定義の使用

pkgproto コマンドを使用して基本的なprototype ファイルを作成する場合、すべてのパッケージオブジェクトを、 none クラスまたはある特定のクラスに割り当てることができます。「例--pkgproto コマンドを使用した prototype ファイルの作成」で示されるように、基本的な pkgproto コマンドは、すべてのオブジェクトを none クラスに割り当てます。すべてのオブジェクトをある特定のクラスに割り当てるには、-c オプションを使用します。例:

$ pkgproto -c classname /home/jane/SUNWcadap > /home/jane/InfoFiles/prototype

複数のクラスを使用する場合、prototype ファイルを手動で編集し、各オブジェクトの class フィールドを変更することが必要になります。また、クラスを使用する場合には、pkginfo ファイルに CLASSES パラメータを定義し、クラスアクションスクリプトを書く必要もあります。クラスの使用は、オプションの機能であり、「クラスアクションスクリプトの書き込み」で詳細に説明されています。

例—pkgproto コマンドを使用して作成した prototype ファイルの微調整

Example—Creating a prototype File With the pkgprotoCommandで説明されている pkgproto コマンドで 「例--pkgproto コマンドを使用した prototype ファイルの作成」 ファイルを作成した場合、いくつかの変更を行う必要があります。

prototype ファイルへの機能の追加

prototype ファイルでは、各パッケージオブジェクトの定義に加えて、次の事項を行うことができます。

これらの変更を行う方法については、次のセクションを参照してください。

インストール時に作成される追加のオブジェクトの定義

prototype ファイルを使用して、実際にはインストールメディアに提供されないオブジェクトを定義できます。これらのオブジェクトは、インストール時に pkgadd コマンドを使用すると、インストール時にまだ存在しない場合、必要なファイルタイプで作成されます。

オブジェクトがターゲットシステムに作成されるように指定するには、適切なファイルタイプを指定した prototype ファイルにそのオブジェクトのエントリを追加します。

たとえば、ターゲットシステムにディレクトリを作成し、インストールメディアにはそのディレクトリを提供しない場合、prototype ファイル内でそのディレクトリに次のエントリを追加します。

d none /directory 0644 root other

ターゲットシステム上で空のファイルを作成する場合、prototype ファイル内での空のファイルに対するエントリは次のようになります。

f none filename=/dev/null 0644 bin bin

インストールメディアに提供されるオブジェクトは、通常ファイルおよび編集スクリプト (ファイルタイプ e vf) と、そのファイルおよびスクリプトを格納する必要があるディレクトリだけです。追加のオブジェクトは、提供されるオブジェクト、ディレクトリ、名前付きパイプ、デバイス、ハードリンク、およびシンボリックリンクを参照せずに作成されます。

インストール時のリンクの作成

パッケージのインストール時にリンクを作成するには、リンクオブジェクトのprototype ファイルエントリ内で次の内容を定義します。

パッケージが絶対パスまたは再配置可能としてインストールされるかどうかにかかわらず、相対リンクはこの方法で指定できます。

複数のボリュームにわたるパッケージの配布

pkgmk コマンドを使用してパッケージを構築すると、このコマンドにより、複数ボリュームのパッケージを編成するのに必要な計算と処理が実行されます。複数ボリュームのパッケージは、分割パッケージと呼ばれます。

ただし、prototype ファイル内でオプションの part フィールドを使用して、配置するオブジェクトの部分を定義することもできます。このフィールドの数値が pkgmk コマンドに優先され、このフィールドに指定された部分にコンポーネントが強制的に配置されます。ファイルシステムとしてフォーマットされたリムーバブルメディアでは、各部分と各ボリューム間に一対一の対応が存在します。ボリュームが開発者によって事前に割り当てられている場合、 容量が不足しているボリュームが存在すると pkgmk コマンドでエラーが発生します。

prototype ファイルの入れ子化

複数の prototype ファイルを作成し、!include コマンドを使用してそれらのファイルを prototype ファイルに組み込むことができます。保守を容易にするために、ファイルを入れ子にすることもできます。

次の例では、prototype ファイルが 3 つあります。メインファイル (prototype) は編集します。その他の 2 つのファイル (proto2proto3) は組み込みます。

!include /source-dir/proto2
!include /source-dir/proto3

mode フィールド、owner フィールド、および group フィールドのデフォルト値の設定

mode フィールド、 owner フィールド、および group フィールドにデフォルト値を設定するには、!default コマンドを prototype ファイルに挿入します。例:

!default 0644 root other

注 - !default コマンドの範囲は、コマンドの挿入位置から始まり、ファイルの末尾までに及びます。コマンドの範囲は、組み込まれたファイルには適用されません。


ただし、ターゲットシステム (/usr または /etc/vfstab など) に存在することがわかっているディレクトリ (ファイルタイプ d) および編集可能なファイル (ファイルタイプ e) の場合、prototype ファイル内で mode フィールド、owner フィールド、および group フィールドを疑問符 (?) に設定する必要があります。これにより、サイト管理者が変更した可能性がある既存の設定が破棄されません。

pkgmk コマンドの検索パスの指定

パッケージオブジェクトのソースの場所がターゲットの場所と異なり、「オブジェクトのソースおよびターゲットの場所の簡略な記述」で説明されているpath1=path2 形式を使用しない場合、prototype ファイル内で !search コマンドを使用できます。

たとえば、ホームディレクトリに pkgfiles というディレクトリを作成し、そのディレクトリにすべての情報ファイルとインストールスクリプトが含まれる場合、pkgmk コマンドでパッケージを構築するときにこのディレクトリが検索されるように指定できます。

prototype ファイル内のこのコマンドは次のようになります。

!search /home-dir/pkgfiles

注 - 検索要求は、組み込まれたファイルには適用されません。また、検索は、リストされた特定のディレクトリに制限され、再帰的には検索しません。


環境変数の設定

!PARAM=value 形式の prototype ファイルには、コマンドを追加することもできます。この形式のコマンドは、現在の環境の変数を定義します。複数の prototype ファイルを使用する場合、このコマンドのスコープは、コマンドが定義されている prototype ファイルに対してローカルです。

変数 PARAM は、小文字または大文字で始めることができます。PARAM 変数の値が構築時に不明な場合、pkgmk コマンドはエラーで中断されます。構築変数とインストール変数の違いについては、「パッケージ環境変数」を参照してください。

pkgproto コマンドを使用して prototype ファイルを作成する方法


注 - 情報ファイルとインストールスクリプトは、prototype ファイルを作成する前に作成したほうが簡単です。ただし、この順序は必須ではありません。パッケージコンテンツを変更したあと、prototype ファイルをいつでも編集できます。情報ファイルとインストールスクリプトについては、第 3 章パッケージの機能の拡張 (タスク)を参照してください。


  1. まだ決定していない場合、絶対的なパッケージオブジェクトと再配置可能なパッケージオブジェクトを決定します。

    この手順を完了させるための情報については、path フィールド」を参照してください。

  2. ターゲットシステム上での配置を模倣するようにパッケージオブジェクトを編成します。

    「パッケージのコンテンツの編成」で説明されているようにパッケージを編成済みの場合、手順 1 での決定に基づき、いくつかの変更を加える必要が生じることがあります。パッケージをまだ編成していない場合、ここで編成するようにしてください。パッケージを編成しない場合、pkgproto コマンドを使用して基本的な prototype ファイルを作成できません。

  3. 集合的再配置可能オブジェクトがパッケージに含まれる場合、pkginfo ファイルを編集して、BASEDIR パラメータを適切な値に設定します。

    例:

    BASEDIR=/opt

    集合的再配置可能オブジェクトについては、「集合的再配置可能オブジェクト」を参照してください。

  4. 個別再配置可能オブジェクトがパッケージに含まれる場合、インストーラに対して適切なパス名を要求する request スクリプトを作成します。あるいは、ファイルシステムデータから適切なパスを決定する checkinstall スクリプトを作成します。

    次の一覧に、共通のタスクを参照するためのページ番号を示します。

  5. すべてのパッケージコンポーネントの所有者とグループを、ターゲットシステム上で希望の所有者とグループに変更します。

    パッケージと情報ファイルのディレクトリ上で chown -Rchgrp -R コマンドを使用します。

  6. pkgproto コマンドを実行して、基本的な prototype ファイルを作成します。

    pkgproto コマンドは、ディレクトリをスキャンして基本的なファイルを作成します。例:

    $ cd package-directory
    $ pkgproto ./package-directory > prototype

    prototype ファイルは、システム上の任意の場所に配置できます。情報ファイルとインストールスクリプトを 1 つの場所に保管すると、アクセスと保守が容易になります。pkgproto コマンドについては、pkgproto(1) のマニュアルページを参照してください。

  7. 任意のテキストエディタを使用して prototype ファイルを編集し、v ex、および i のタイプのファイルにエントリを追加します。

    必要となる特定の変更内容については、pkgproto コマンドで作成した prototype ファイルの微調整」を参照してください。

  8. (オプション) 複数のクラスを使用する場合、prototype ファイルと pkginfo ファイルを編集します。任意のテキストエディタを使用して、必要な変更を加え、対応するクラスアクションスクリプトを作成します。

    必要となる特定の変更内容については、pkgproto コマンドで作成した prototype ファイルの微調整」および「クラスアクションスクリプトの書き込み」を参照してください。

  9. 任意のテキストエディタで prototype ファイルを編集して、パス名を再定義し、その他のフィールド設定を変更します。

    詳細については、pkgproto コマンドで作成した prototype ファイルの微調整」を参照してください。

  10. (オプション) 任意のテキストエディタで prototype ファイルを編集して、prototype ファイルに機能を追加します。

    詳細については、prototype ファイルへの機能の追加」を参照してください。

  11. ファイルを保存してエディタを終了します。

参照

次のタスクの準備が整っている場合、「パッケージの構築方法」を参照してください。