JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用映像包管理系统打包和交付软件     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  IPS 设计目标、概念和术语

2.  使用 IPS 打包软件

3.  安装、删除和更新软件包

4.  指定软件包相关项

5.  允许变量

互斥软件组件

可选软件组件

6.  以编程方式修改软件包清单

7.  在软件包安装过程中自动进行系统更改

8.  有关软件包更新的高级主题

9.  对 IPS 软件包进行签名

10.  处理非全局区域

11.  修改已发布的软件包

A.  对软件包进行分类

B.  如何使用 IPS 打包 Oracle Solaris OS

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

互斥软件组件

Oracle Solaris 支持多种体系结构,SVR4 包管理系统常发生的一个错误是意外安装了错误体系结构的软件包。针对每种受支持的体系结构维护单独的 IPS 软件系统信息库对 ISV 没有吸引力,而且这样软件用户很容易出错。因此,IPS 支持在多种体系结构上安装单个软件包。

用于实现此功能的机制称作变量。变量允许目标映像的属性确定实际安装哪些软件组件。

变量包含两部分:名称和可能值列表。下表显示了在 Oracle Solaris 11 中定义的变量。

变量名
可能值
variant.arch
sparci386
variant.opensolaris.zone
globalnonglobal
variant.debug.*
truefalse

变量出现在软件包中的以下两处:

例如,交付符号链接 /var/ld/64 的软件包可能包含以下定义:

set name=variant.arch value=sparc value=i386
dir group=bin mode=0755 owner=root path=var/ld
dir group=bin mode=0755 owner=root path=var/ld/amd64 \
    variant.arch=i386
dir group=bin mode=0755 owner=root path=var/ld/sparcv9 \
    variant.arch=sparc
link path=var/ld/32 target=.
link path=var/ld/64 target=sparcv9 variant.arch=sparc
link path=var/ld/64 target=amd64 variant.arch=i386

请注意,同时交付到 SPARC 和 x86 上的组件不接收变量标记,但是只交付到其中一种体系结构的组件将接收相应的标记。操作可包含用于不同变量名称的多个标记。例如,某个软件包可能同时包含用于 SPARC 和 x86 的调试H和非调试二进制文件。

在 Oracle Solaris 中,内核组件通常从安装在区域中的软件包中省略,因为内核组件在非全局区域中没有用。所以,内核组件使用设置为 globalopensolaris.zone 变量进行标记,从而不在非全局区域中安装内核组件。通常在发布期间使用 pkgmogrify(1) 规则在清单中进行此操作。针对区域标记 i386sparc 内部版本中的软件包,然后使用 pkgmerge(1) 合并来自 sparci386 内部版本的软件包。这比尝试手动构造此类软件包要远远可靠和快得多。

软件包开发者不能定义新变量。然而,开发者可以提供组件的调试版本(用 variant.debug.* 变量标记),并且如果发生问题用户可以选择此变量。变量名称空间的 variant.debug.* 部分预定义为使用缺省值 false。请记住变量是按每个映像设置的,所以确保选择一个合适的名称,此名称可合理解释软件的该部分,而且是唯一的。

变量标记在合并期间应用于因体系结构而不同的操作,包括相关项和 set 操作。如果软件包标记为不支持当前映像的某个变量值,则不考虑安装此软件包。

pkgmerge(1) 手册页提供了有关合并软件包的一些示例。如果需要,pkgmerge 命令可同时合并多个不同变量。