跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中使用映像包管理系统打包和交付软件 Oracle Solaris 11.1 Information Library (简体中文) |
考虑区域和打包时需要回答以下两个问题:
软件包中的内容是否具有可跨越全局区域与非全局区域之间的边界的接口?
要在非全局区域中安装软件包的多少内容?
如果 pkgA 提供内核和用户级功能,且必须相应地更新接口的两端,则只要在非全局区域中更新 pkgA 就必须在已安装 pkgA 的任何其他区域中更新 pkgA。
要确保正确执行此更新,请在 pkgA 中使用 parent 相关项。如果单个软件包提供接口的两端,则依赖于 feature/package/dependency/self 的 parent 相关项可确保全局区域和非全局区域包含相同的软件包版本,以防止接口中出现版本差异。
parent 相关项还可确保如果软件包位于非全局区域,则其也将存在于全局区域中。
如果该接口跨越多个软件包,则包含接口的非全局区域端的软件包还必须包含软件包的 parent 相关项,以提供接口的全局区域端。相关项类型中也讨论了 parent 相关项。
如果在非全局区域中安装软件包时应该安装软件包的所有内容,则无需对软件包执行任何操作即可使其正常运行。不过,对于软件包使用者来说,了解到软件包设计者已对区域安装进行了正确考虑并确定软件包可在区域中运行,可以更让人放心。因此,您应明确指出软件包在全局区域和非全局区域中都正常运行。为此,请将以下操作添加到清单中:
set name=variant.opensolaris.zone value=global value=nonglobal
如果无法在非全局区域中安装软件包中的任何内容(例如,只交付内核模块或驱动程序的软件包),则软件包应指出其无法在非全局区域进行安装。为此,请将以下操作添加到清单中:
set name=variant.opensolaris.zone value=global
如果可在非全局区域中安装软件包的一些(但不是所有)内容,则执行以下步骤:
使用以下 set 操作指出该软件包可在全局区域和非全局区域中进行安装:
set name=variant.opensolaris.zone value=global value=nonglobal
标识仅在全局区域或仅在非全局区域中相关的操作。将以下属性指定到仅在全局区域中相关的操作:
variant.opensolaris.zone=global
将以下属性指定到仅在非全局区域中相关的操作:
zone:variant.opensolaris.zone=nonglobal
如果某个软件包具有 parent 相关项或在全局区域和非全局区域中存在差异,则进行测试以确保软件包在全局区域和非全局区域中按照预期方式运行。
如果软件包具有依赖于自身的 parent 相关项,则全局区域必须配置可提供软件包的系统信息库作为该软件包的一个源。首先在全局区域安装软件包,然后在非全局区域安装以进行测试。