要为此案例研究在安装时创建一个数据库文件,并在删除时保存副本,您必须完成以下任务:
定义三个类。
在此案例研究中,软件包要求在 CLASSES 参数中定义以下三个类:
标准类 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 文件和数据目录。