应用程序包开发者指南

软件包安装期间如何处理类

下面描述了安装类时发生的系统操作。操作针对软件包的每个卷都会重复执行一次(在该卷进行安装时)。

  1. pkgadd 命令创建路径名列表。

    pkgadd 命令创建操作脚本处理的路径名列表。此列表的每一行都包含源路径名和目标路径名,由空格分隔。源路径名指明要安装的对象在安装卷上所处的位置。目标路径名指明应将该对象安装到的目标系统上的位置。列表的内容受以下条件限制:

    • 列表只包含属于关联类的路径名。

    • 如果尝试创建软件包对象失败,那么目录、命名管道、字符设备、块设备和符号链接将会包括在列表中,且源路径名设置为 /dev/null。通常,这些项目由 pkgadd 命令自动创建(如果尚不存在),并根据 pkgmap 文件中的定义被赋予适当的属性(模式、所有者、组)。

    • 文件类型为 l 的链接文件在任何情况下都不会包括在列表中。指定类中的硬链接在项目 4 中创建。

  2. 如果没有针对某个特定类的安装提供类操作脚本,则生成的列表中的路径名将会从卷复制到相应的目标位置。

  3. 执行类操作脚本(如果存在)。

    将会使用包含项目 1 中生成的列表的标准输入调用类操作脚本。如果该卷是软件包的最后一个卷,或者该类中不再有对象存在,则将使用单个参数 ENDOFCLASS 执行该脚本。


    注 –

    即使软件包中不存在该类的常规文件,也会使用一个空列表和 ENDOFCLASS 参数至少调用类操作脚本一次。


  4. pkgadd 命令执行内容和属性审计,并创建硬链接。

    成功执行项目 2 或 3 之后,pkgadd 命令将审计路径名列表的内容和属性信息。pkgadd 命令会自动创建与类关联的链接。将为生成的列表中的所有路径名更正检测到的属性不一致性。