应用程序包开发者指南

支持类归档软件包的关键字

为了支持这一新的类归档格式,三个采用关键字形式的新接口在 pkginfo 文件内具有特殊含义。这些关键字用于指定需要特殊处理的类。每个关键字语句的格式为: keyword=class1[class2 ...]。下表定义了每个关键字值。

关键字 

说明 

PKG_SRC_NOVERIFY

如果所交付的软件包的 relocroot 目录中的文件属于指定类,则该关键字告诉 pkgadd 不要验证这些文件是否存在以及文件属性。所有归档类都需要此关键字,因为这些文件不再位于 relocroot 目录中。它们是 archive 目录中的专用格式文件。

PKG_DST_QKVERIFY

这些类中的文件在安装后使用一个快速算法进行验证,只有少量或者没有任何文本输出。快速验证首先正确设置每个文件的属性,然后检查以了解该操作是否成功。然后,将根据 pkgmap 测试文件大小和修改时间。不会执行 checksum 验证,该验证与标准验证机制相比错误恢复功能较差。如果在安装期间发生断电或磁盘故障,则目录文件可能与已安装的文件不一致。总能使用 pkgrm 解决这种不一致问题。

PKG_CAS_PASSRELATIVE

通常,安装类操作脚本从 stdin 接收告诉它安装哪些文件的源和目标对列表。指定给 PKG_CAS_PASSRELATIVE 的类不会获得这些源和目标对。相反,这些类会收到单个列表,其中第一个条目是源软件包的位置,其余条目是目标路径。这专门用于简化从归档文件中进行提取的操作。根据源软件包的位置,您可以在 archive 目录中找到归档文件。然后,目标路径被传递给负责提取归档文件内容的函数。所提供的每个目标路径对于基目录而言是绝对的或相对的,具体取决于该路径原来位于 root 还是位于 reloc。如果选择此选项,可能难以将相对路径和绝对路径都组合到单个类中。

对于每个归档类,都需要一个类操作脚本。这是一个包含 Bourne shell 命令的文件,该文件由 pkgadd 执行以便从归档中实际安装文件。如果在软件包的 install 目录中找到一个类操作脚本,pkgadd 会将所有安装职责移交给该脚本。该类操作脚本以超级用户权限运行,并且可以将其文件放置在目标系统中的任何位置。


注 –

实现类归档软件包绝对必须的唯一关键字是 PKG_SRC_NOVERIFY。其他关键字可用于提高安装速度或保存代码。