このケーススタディーに従って、インストール時にデータベースファイルを作成し、削除時にコピーを保存するには、次の作業を完了する必要があります。
3 つのクラスを定義します。
このケーススタディーで使用するパッケージには、CLASSES パラメータで次の 3 つのクラスを定義しておく必要があります。
標準クラスである none。これには、サブディレクトリ bin にある一連のプロセスが含まれています。
admin クラス。これには、実行可能ファイル config と、データファイルを格納したディレクトリが含まれています。
cfgdata クラス。これには、ディレクトリが含まれています。
パッケージを、全体として再配置可能にします。
prototype ファイルに、スラッシュまたは環境変数で始まるパス名が存在しないことに注目してください。このことは、これらが全体として再配置可能であることを示しています。
データベースファイルに必要なスペースのサイズを計算し、パッケージとともに配信する space ファイルを作成します。このファイルは pkgadd コマンドに対して、パッケージが追加スペースを必要とすることを通知し、そのサイズを指定します。
admin クラス用のクラスアクションスクリプト (i.admin) を作成します。
サンプルのスクリプトでは、admin クラスに属するデータファイルを使用して、データベースを初期化しています。この作業を実行するために、スクリプトは次の処理を実行します。
ソースデータファイルを、その適切なターゲットにコピーします。
config.data という名前の空ファイルを作成し、cfgdata のクラスに割り当てます。
bin/config コマンド (パッケージとともに提供され、すでにインストールされている) を実行し、admin クラスに属するデータファイルを使用して、データベースファイル config.data を生成します。
installf -f コマンドを実行し、config.data のインストールをファイナライズします。
削除時に、admin クラスに対して特別なアクションは必要ないため、削除クラスアクションスクリプトは作成されません。つまり、admin クラスのすべてのファイルとディレクトリは、システムから削除されます。
cfgdata クラス用の削除クラスアクションスクリプト (r.cfgdata) を作成します。
この削除スクリプトは、データベースファイルが削除される前に、そのコピーを作成します。インストール時に、このクラスに対して特別なアクションは必要ないため、インストールクラスアクションスクリプトは必要ありません。
削除スクリプトへの入力は、削除するパス名のリストです。パス名は、常にアルファベットの逆順に表示されます。この削除スクリプトは、ファイルを $PKGSAV というディレクトリにコピーします。すべてのパス名が処理されると、スクリプトは先頭のパス名に戻り、cfgdata クラスに関連付けられたすべてのディレクトリとファイルを削除します。
この削除スクリプトが実行されると、その結果として、config.data が $PKGSAV にコピーされ、次に config.data ファイルとデータディレクトリが削除されます。