通常情况下,您希望将一组软件包安装在一个系统上以便同时对其进行支持和升级:该组中的所有软件包要么全部更新,要么都不更新。这就是使用 incorporate 相关项的原因。
在 Oracle Solaris 11.2 中添加和更新软件 中的安装定制 incorporation显示了一个创建定制 incorporation 的示例,用于限制可安装的 pkg:/entire incorporation 的版本。本节的其余部分对 incorporation 进行了更多一般介绍。
以下三个不完整的软件包清单显示了 foo 和 bar 软件包与 myincorp incorporation 软件包之间的关系。
以下摘录来自 foo 软件包清单:
set name=pkg.fmri value=foo@1.0 dir path=foo owner=root group=bin mode=0755 depend fmri=myincorp type=require
以下摘录来自 bar 软件包清单:
set name=pkg.fmri value=bar@1.0 dir path=bar owner=root group=bin mode=0755 depend fmri=myincorp type=require
以下摘录来自 myincorp 软件包清单:
set name=pkg.fmri value=myincorp@1.0 depend fmri=foo@1.0 type=incorporate depend fmri=bar@1.0 type=incorporate
foo 和 bar 软件包都具有依赖于 myincorp incorporation 的 require 相关项。myincorp 软件包具有 incorporate 相关项,它们按以下方式对 foo 和 bar 软件包进行约束:
foo 和 bar 软件包最多可升级到版本 1.0:到相关项中指定的版本号所定义的粒度级别。
如果 foo 和 bar 软件包已安装,则它们必须处于版本 1.0 或更高版本。
依赖于版本 1.0 的 incorporate 相关项允许版本 1.0.1 或版本 1.0.2.1,例如,但不允许版本 1.1、版本 2.0 或版本 0.9。当安装了在更高版本指定了 incorporate 相关项的更新的 incorporation 软件包时,将允许 foo 和 bar 软件包更新至这些更高的版本。
由于 foo 和 bar 均具有对 myincorp 软件包的 require 相关项,因此如果安装了 foo 或 bar,或者同时安装了 foo 和 bar,则将安装 incorporation 软件包。