应用程序包开发者指南

生成软件包之前的注意事项

生成软件包之前,您需要确定您的产品将由一个还是多个软件包组成。请注意,许多小软件包会比一个大软件包需要更长的安装时间。虽然创建单个软件包是一个不错的主意,但不一定总能实现。如果您决定生成多个软件包,则需要确定如何对应用程序代码分段。本节提供了计划生成软件包时使用的准则列表。

许多打包准则在彼此之间都存在着一定的折衷。均衡地满足所有要求通常很困难。这些准则是按重要性顺序呈现的。不过,需要根据具体环境将此顺序用作灵活的指导。虽然每个准则都很重要,但终究取决于您来优化这些要求,以生成一组优质的软件包。

有关更多设计理念,请参见第 6 章

使软件包可远程安装

所有软件包必须可远程安装。可远程安装是指要安装软件包的管理员可以尝试将其安装在客户机系统上,而不一定安装到执行 pkgadd 命令的根 (/) 文件系统。

针对客户机/服务器配置进行优化

布置软件包时,请考虑不同类型的系统软件配置(例如,独立系统和服务器)。良好的打包设计会分离受影响的文件,以优化每个配置类型的安装。例如,应该将根 (/) 和 /usr 文件系统的内容进行分段,以便可以轻松地支持服务器配置。

根据功能边界打包

软件包应该是一个独立的整体,并且可通过一组功能清楚地标识。例如,一个包含 UFS 的软件包应包含所有 UFS 实用程序,并只限于采用 UFS 二进制代码。

应该根据客户的视角将软件包组织成功能单元。

根据版税边界打包

将因有合同而需要支付版税的代码放到专用软件包或软件包组中。请勿将代码分散放到并非必需的多个软件包中。

根据系统相关性打包

将系统相关的二进制代码保存在专用软件包中。例如,应该将内核代码放在专用软件包中,使每个实现体系结构都由不同的软件包实例组成。本规则也适用于不同体系结构的二进制代码。例如,SPARC 系统的二进制代码应放在一个软件包中,而 x86 系统的二进制代码应放在另一个软件包中。

消除软件包中的重叠

构建软件包时,请尽一切可能消除重复的文件。不必要的文件重复会导致支持和版本方面的困难。如果您的产品有多个软件包,请反复比较这些软件包的内容以查看是否存在重复的文件。

根据本地化边界打包

本地化特定的项目应放在其自己的软件包中。理想的软件包模型应根据每种语言环境将产品的本地化项目作为一个软件包交付。遗憾的是,在某些情况下组织边界与功能和产品边界准则相冲突。

国际缺省设置也可以在一个软件包中交付。此设计可以将需要本地化更改的文件隔离开来,并对本地化软件包的交付格式进行标准化。