pkgproto コマンドは、初期の prototype ファイルを作成するのに役立ちますが、定義が必要な各パッケージオブジェクトのエントリは作成しません。このコマンドでは、エントリは完了されません。pkgproto コマンドは、次のどちらの処理も実行しません。
ファイルタイプ v (揮発性ファイル )、e (編集可能なファイル)、x (排他的なディレクトリ)、または i (情報ファイルまたはインストールスクリプト) を指定したオブジェクトの完全なエントリの作成
1 回の呼び出しでの複数のクラスのサポート
少なくとも、prototype ファイルを変更して、ファイルタイプ i を指定したオブジェクトを追加する必要があります。情報ファイルとインストールスクリプトをパッケージディレクトリの最初のレベルに格納した場合 (例: /home/jane/SUNWcadap/pkginfo)、prototype ファイル内のエントリは次のようになります。
i pkginfo |
情報ファイルとインストールスクリプトをパッケージディレクトリの最初のレベルに格納しなかった場合、それらのソースの場所を指定する必要があります。次に例を示します。
i pkginfo=/home/jane/InfoFiles/pkginfo |
あるいは、!search コマンドを使用して、パッケージの構築時に pkgmk コマンドの場所を検索するように指定できます。詳細については、「pkgmk コマンドの検索パスの指定」を参照してください。
ファイルタイプ v、e、および 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 パラメータを定義し、クラスアクションスクリプトを書く必要もあります。クラスの使用は、省略可能な機能であり、「クラスアクションスクリプトの書き込み」で詳細に説明されています。
Example—Creating a prototype File With the pkgproto Commandで説明されている pkgproto コマンドで 「例—pkgproto コマンドを使用した prototype ファイルの作成」 ファイルを作成した場合、いくつかの変更を行う必要があります。
pkginfo ファイルにはエントリが必要です。
パッケージソースが /home/janeにあるので、path フィールドを path1=path2 形式に変更する必要があります。パッケージソースが階層ディレクトリになっており、また、!search コマンドは再帰的に検索しないので、 path1=path2 形式を使用したほうが容易な場合があります。
owner フィールドと group フィールドには、ターゲットシステム上にある既存のユーザーおよびグループの名前を含めるようにしてください。すなわち、所有者 jane は、SunOSTM オペレーティングシステムに含まれないのでエラーになります。
変更した prototype ファイルは次のようになります。
i pkginfo=/home/jane/InfoFiles/pkginfo d none SUNWcadap=/home/jane/SUNWcadap 0755 root sys d none SUNWcadap/demo=/home/jane/SUNWcadap/demo 0755 root bin f none SUNWcadap/demo/file1=/home/jane/SUNWcadap/demo/file1 0555 root bin d none SUNWcadap/srcfiles=/home/jane/SUNWcadap/srcfiles 0755 root bin f none SUNWcadap/srcfiles/file5=/home/jane/SUNWcadap/srcfiles/file5 0555 root bin f none SUNWcadap/srcfiles/file6=/home/jane/SUNWcadap/srcfiles/file6 0555 root bin d none SUNWcadap/lib=/home/jane/SUNWcadap/lib 0755 root bin f none SUNWcadap/lib/file2=/home/jane/SUNWcadap/lib/file2 0644 root bin d none SUNWcadap/man=/home/jane/SUNWcadap/man 0755 bin bin f none SUNWcadap/man/windex=/home/jane/SUNWcadap/man/windex 0644 root other d none SUNWcadap/man/man1=/home/jane/SUNWcadap/man/man1 0755 bin bin f none SUNWcadap/man/man1/file4.1=/home/jane/SUNWcadap/man/man1/file4.1 0444 bin bin f none SUNWcadap/man/man1/file3.1=/home/jane/SUNWcadap/man/man1/file3.1 0444 bin bin |