在 Oracle® Solaris 11.2 中使用映像包管理系统打包和交付软件

退出打印视图

更新时间: 2014 年 7 月
 
 

设计软件包

本节中所述的针对良好软件包开发的许多条件需要您进行权衡。通常很难同时满足所有要求。以下条件是按重要程度介绍的。但是,该序列可灵活变化,具体取决于您的情况。尽管每一个条件都很重要,但是您需要决定是否优化这些要求以便生成一组好的软件包。

选择软件包名称。

Oracle Solaris 使用用于 IPS 软件包的分层命名策略。请尽可能地将软件包名称设计为适合同一个方案。尽量保持软件包名称的最后部分是唯一的,以便用户可以将在命令中指定短的软件包名称,如 pkg install

优化客户机/服务器配置。

布局软件包时,请考虑各种软件使用模式(客户机和服务器)。良好的软件包设计应区分受影响的文件以优化每种配置类型的安装。例如,对于网络协议实现,软件包用户应具备在不必安装服务器的情况下安装客户机的能力。如果客户机和服务器共享一些实现组件,请创建一个包含共享内容的基本软件包。

按功能边界打包。

软件包应该是自包含的,并且可通过一组功能清楚地识别。例如,一个包含 ZFS 的软件包应该包含所有 ZFS 实用程序,并仅限于 ZFS 二进制文件。

软件包应该从用户的角度组织成功能单元。

按许可证或特许权边界打包。

将因合同协议导致需要特许权使用费以及包含不同的软件许可证条款的代码放入专用软件包或软件包组。除非必要,不要将代码分散到更多软件包中。

避免或管理软件包之间的重叠。

重叠的软件包无法同时安装。重叠的软件包的一个示例是那些将不同的内容交付到同一文件系统位置的软件包。由于该错误只有在用户尝试安装软件包时才可能出现,所以重叠的软件包会导致很糟糕的用户体验。pkglint(1) 工具有助于在软件包设计期间检测此错误。

如果软件包内容必须不同,请声明 exclude 相关项,以便 IPS 不允许同时安装这些软件包。

正确设置软件包大小。

软件包代表一个单独的软件单元,可以安装也可以不安装。(请参见可选软件组件中有关侧面的说明,以了解软件包如何能够提供可选软件组件。)总是同时安装的软件包应该组合在一起。由于 IPS 只下载更新中的已更改文件,所以如果更改有限,即使大型软件包也能快速更新。