在安装期间编辑多个文件的最高效方式是定义一个类,然后提供类操作脚本。如果您使用了 build 类方法,您将需要为每个编辑的 crontab 文件提供一个 build 类脚本。定义 cron 类是一种更通用的方法。要使用这种方法编辑 crontab 文件,您必须:
在 prototype 文件中定义将编辑的 crontab 文件。
在 prototype 文件中为每个将编辑的 crontab 文件创建一个条目。对于每个文件,将类定义为 cron 并将文件类型定义为 e。使用将编辑的文件的实际名称。
为软件包创建 crontab 文件。
这些文件包含您希望添加到同名的现有 crontab 文件的信息。
为 cron 类创建安装类操作脚本。
i.cron 样例脚本执行以下过程:
确定用户 ID (user ID, UID)。
i.cron 脚本将 user 变量设置为正在处理的 cron 类脚本的基名。该名称是 UID。例如,/var/spool/cron/crontabs/root 的基名是 root,该基名也是 UID。
使用 UID 和 -l 选项执行 crontab。
使用 -l 选项会告诉 crontab 为定义的用户将 crontab 文件内容发送到标准输出。
将 crontab 命令的输出通过管道输出到 sed 脚本,该脚本用于删除以前使用该安装技术添加的所有条目。
将编辑的输出放置到临时文件中。
将 root UID 对应的数据文件(随软件包提供)添加到临时文件,并添加一个标记,以便您知道这些条目的来源。
使用同一 UID 执行 crontab,并使用临时文件作为其输入。
为 cron 类创建删除类操作脚本。
r.cron 脚本与安装脚本基本相同,只不过前者没有用于向 crontab 文件添加信息的过程。
这些过程针对 cron 类中的每个文件执行。