要使用类和类操作脚本在安装期间修改 /etc/inittab,您必须完成以下任务:
创建一个类。
创建名为 inittab 的类。必须为该类提供安装和删除类操作脚本。在 pkginfo 文件的 CLASSES 参数中定义 inittab 类。
创建一个 inittab 文件。
此文件包含将添加到 /etc/inittab 的条目的信息。请注意在 prototype 文件图中,inittab 是 inittab 类的成员并且文件类型为 e(表示可编辑)。
创建安装类操作脚本 (i.inittab)。
切记类操作脚本每次执行时都必须产生相同结果。类操作脚本执行以下过程:
检查以前是否已添加该条目
如果是,删除该条目的所有以前版本
编辑 inittab 文件并添加注释行,以便您知道该条目的来源
将临时文件移回 /etc/inittab
当收到 ENDOFCLASS 指示符时,执行 init q 命令
请注意,此安装脚本可执行 init q 命令。此方法不需要使用只有一行的 postinstall 脚本。
创建删除类操作脚本 (r.inittab)。
删除脚本与安装脚本非常类似。安装脚本添加的信息会被删除,而且会执行 init q 命令。
此案例研究比下一个更为复杂;请参见使用 sed 类和 postinstall 脚本修改文件。在此案例研究中,不是提供两个文件而是需要三个文件,而且提供的 /etc/inittab 文件实际上只是包含要插入的条目片段的占位符。此占位符可能已被放置到 i.inittab 文件中,除非 pkgadd 命令必须将一个文件传递到 i.inittab 文件。此外,必须将删除过程放置到一个单独的文件 (r.inittab) 中。虽然此方法效果很好,但最好将其保留为在涉及多个文件的非常复杂的安装情况下使用。请参见在安装期间修改 crontab 文件。
由于 inittab 条目末尾的注释基于软件包实例,因此使用 sed 类和 postinstall 脚本修改文件中使用的 sed 程序支持多个软件包实例。使用 build 类修改文件中的案例研究给出了一种在安装期间编辑 /etc/inittab 的更简化的方法。