このアプローチでは、/etc/inittab を変更するために build クラスを使用します。build クラススクリプトはシェルスクリプトとして実行され、実行されているファイルの新しいバージョンを出力します。つまり、このパッケージに付属するデータファイル /etc/inittab が実行され、その実行の出力が /etc/inittab になります。
build クラススクリプトは、パッケージのインストールおよび削除の際に実行されます。ファイルがインストール時に実行される場合には、引数 install がファイルに渡されます。サンプルの build クラススクリプトでは、この引数をテストすることで、インストールのアクションが定義されています。
build クラスを使用して /etc/inittab を編集するには、次の作業を完了する必要があります。
prototype ファイルで構築ファイルを定義します。
prototype ファイル内の構築ファイルのエントリでは、構築ファイルを build クラスとして指定し、そのファイルタイプを e として定義する必要があります。pkginfo ファイルの CLASSES パラメータが build として定義されていることを確認してください。
build クラススクリプトを作成します。
サンプルの build クラススクリプトは、次の手順を実行します。
/etc/inittab ファイルを編集し、このパッケージに関する既存の変更をすべて削除する。ファイル名 /etc/inittab は、sed コマンドにハードコードされています。
パッケージがインストールされる場合は、/etc/inittab の最後に新しい行を追加する。この新しいエントリには、そのエントリの出自を示すコメントタグが含まれています。
init q コマンドを実行する。
この解決方法は、「標準クラスとクラスアクションスクリプトを使用したファイルの変更」および「sed クラスと postinstall スクリプトを使用したファイルの変更」のケーススタディーで説明した欠点に対応しています。短いファイルがひとつ (pkginfo および prototype ファイル以外に) 必要になるだけです。PKGINST パラメータを使用することにより、このファイルはパッケージの複数のインスタンスを処理することができ、init q コマンドを build クラススクリプトから実行することにより、postinstall スクリプトが不要になります。