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

文档信息

前言

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

IPS 设计目标

软件自组装

软件自组装工具

原子软件对象

配置组合

执行器和 SMF 服务

Oracle Solaris 中的软件自组装的示例

Apache Web Server

交付配置片段的多个软件包

IPS 软件包生命周期

IPS 术语和组件

可安装的映像

软件包标识符:FMRI

软件包发布者

软件包名称

软件包版本

软件包内容:操作

文件操作

目录操作

链接操作

硬链接操作

设置操作

驱动程序操作

依赖操作

许可证操作

传统操作

签名操作

用户操作

组操作

软件包系统信息库

2.  使用 IPS 打包软件

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

4.  指定软件包相关项

5.  允许变量

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

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

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

9.  对 IPS 软件包进行签名

10.  处理非全局区域

11.  修改已发布的软件包

A.  对软件包进行分类

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

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

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

IPS 术语和组件

本节定义了 IPS 术语并介绍了 IPS 组件。

可安装的映像

IPS 设计用于安装映像中的软件包。映像是一个目录树,可以根据需要挂载在各种位置。映像属于以下三种类型之一:

完整

在完整映像中,所有相关项都在映像自身内解析,IPS 以一致的方式维护这些相关项。

区域

非全局区域映像与某个完整映像(父全局区域映像)相链接,但本身不提供完整系统。在区域映像中,IPS 根据软件包中相关项的定义来维护非全局区域与其全局区域的一致性。

用户

用户映像只包含可重定位的软件包。

通常,映像是由安装程序创建或克隆的,例如 beadm(1M)zonecfg(1M),而不是通过 pkg image-create 创建的。

软件包标识符:FMRI

每个 IPS 软件包都通过一个故障管理资源标识符 (fault management resource identifier, FMRI) 进行标识,该标识符由发布者、名称、版本以及方案 pkg 组成。在以下软件包 FMRI 示例中,solaris 是发布者,system/library 是软件包名称,0.5.11,5.11-0.175.0.0.0.2.1:20111019T082311Z 是版本:

pkg://solaris/system/library@0.5.11,5.11-0.175.1.0.0.2.1:20120919T082311Z

如果缩写形式的 FMRI 仍然是唯一的,则可以采用缩写形式指定 FMRI。方案、发布者和版本可以省略。可以在软件包名称中省略前导组件。

软件包发布者

发布者是指开发和构造软件包的实体。发布者名称(或前缀)唯一地标识此来源。发布者名称可以包含大写和小写字母、数字、连字符和句点,与有效主机名所包含的字符相同。对于发布者名称,Internet 域名或注册商标是很好的选择,因为它们提供了天然的名称空间划分。

在确定打包解决方案时,软件包客户机会将给定发布者的所有指定来源的软件包合并在一起。

软件包名称

软件包名称是由任意数量的组件按层次结构组成的名称,其中组件之间由正斜杠 (/) 字符分隔。软件包名称组件必须以字母或数字开头,并且可以包含下划线 (_)、连字符 (-)、句点 (.) 和加号 (+)。软件包名称组件区分大小写。

软件包名称构成了跨发布者的单个名称空间。从外部相关项和接口的角度来看,可以认为名称和版本相同但发布者不同的软件包是可以互换的。

如果使用的软件包名称是唯一的,则可以省略软件包名称的前导组件。例如,/driver/network/ethernet/e1000g 可以缩写为 network/ethernet/e1000gethernet/e1000g,甚至只有 e1000g。当未省略软件包名称中的任何组件时,软件包名称被视为完整的或有根的。如果包管理客户机指出软件包名称具有多义性,请指定包含更多组件的软件包名称,或指定完整的有根名称。为软件包选择名称时,应尽可能降低多义性。

如果 FMRI 包含发布者名称,则必须指定完整的有根软件包名称。

脚本应通过软件包的完整有根名称来引用软件包。

还可以使用星号 (*) 来指定 FMRI 以匹配软件包名称中的任一部分。因此,/driver/*/e1000g/dri*00g 均可以展开为 /driver/network/ethernet/e1000g

软件包版本

软件包版本包含四个由标点符号分隔的整数序列。前三个序列中的元素由圆点分隔,各序列可具有任意长度。禁止在版本元素中使用前导零,以便能够按软件包版本进行明确排序。例如,01.1 和 1.01 是无效的版本元素。

在以下软件包版本示例中,第一个序列为 0.5.11,第二个序列为 5.11,第三个序列为 0.175.1.0.0.2.1,第四个序列为 20120919T082311Z

0.5.11,5.11-0.175.1.0.0.2.1:20120919T082311Z
组件版本

第一个序列是组件版本。对于作为 Oracle Solaris 的一部分而开发的组件,此序列代表最后一次更改此软件包时的发行点。对于具有自己的开发生命周期的组件,此序列是一个由小圆点分隔的发行编号,例如 2.4.10。

内部版本

第二个序列是内部版本。如果提供此序列,前面必须有一个逗号。Oracle Solaris 使用此序列指示编译软件包时所针对的 OS 的发行版。

分支版本

第三个序列是分支版本,提供特定于供应商的信息。如果提供此序列,前面必须有一个连字符。此序列可以包含内部版本号或提供一些其他信息。该值可以在打包元数据发生更改时增大,独立于组件。有关 Oracle Solaris 中如何使用分支版本字段的说明,请参见Oracle Solaris 软件包版本控制

时间戳

第四个序列是时间戳。如果提供此序列,前面必须有一个冒号。此序列表示在 GMT 时区中软件包的发布日期和时间。此序列在发布软件包时自动更新。

软件包版本按从左到右的优先级进行排序:紧跟在 @ 之后的数字是版本空间中最重要的部分。时间戳是版本空间中最不重要的部分。

可使用 pkg.human-version 属性来保存人工可读的版本字符串,但还必须存在上述的版本控制方案。人工可读的版本字符串仅用于显示,如设置操作中所述。

通过允许任意版本长度,IPS 可以提供用来支持软件的各种不同模型。例如,软件包设计者可以使用内部版本或分支版本并将版本控制方案的一部分指定给安全更新,一部分用于付费和免费的支持更新,还有一部分用于次要错误修复,或用于任何需要的信息。

版本还可以是 latest 标记,该标记指定已知的最新版本。

附录 B 介绍了 Oracle Solaris 如何实现版本控制。

软件包内容:操作

操作定义了包含软件包的软件;还定义了创建此软件组件所需的数据。软件包内容在软件包清单文件中表示为一组操作。

软件包清单主要是使用程序创建的。软件开发者提供很少信息,并且清单是使用软件包开发工具完成的,如第 2 章中所述。

操作在软件包清单文件中表示为以下形式:

action_name attribute1=value1 attribute2=value2 ...

在以下示例操作中,dir 表示该操作指定一个目录。以 name= value 形式表示的特性描述了该目录的属性:

dir path=a/b/c group=sys mode=0755 owner=root

以下示例显示了一个具有关联数据的操作。在此 file 操作中,第二个字段(没有 name= 前缀)称为有效负荷:

file 11dfc625cf4b266aaa9a77a73c23f5525220a0ef path=etc/release owner=root \
    group=sys mode=0444 chash=099953b6a315dc44f33bca742619c636cdac3ed6 \
    pkg.csize=139 pkg.size=189 variant.arch=i386

在此示例中,有效负荷为文件的 SHA-1 散列。此有效负荷还可以显示为名称为 hash 的一般属性,如以下示例中所示。如果同一操作中同时存在这两种形式,则它们必须具有完全相同的值。

file hash=11dfc625cf4b266aaa9a77a73c23f5525220a0ef path=etc/release owner=root \
    group=sys mode=0444 chash=099953b6a315dc44f33bca742619c636cdac3ed6 \
    pkg.csize=139 pkg.size=189 variant.arch=i386

操作元数据是可以自由扩展的。可以根据需要向操作添加其他属性。属性名称不能包括空格、引号或等号 (=)。属性值中可以包含所有这些符号,但是包含空格的值必须括在单引号或双引号中。位于括在双引号中的字符串内的单引号不需要进行转义,位于括在单引号中的字符串内的双引号也不需要进行转义。可在引号前使用反斜杠 (\) 来避免终止带引号的字符串。反斜杠可使用反斜杠进行转义。定制属性名称应使用唯一的前缀以防止出现意外的名称空间重叠。请参见软件包发布者中有关发布者名称的论述。

可以存在同名的多个属性,这些属性将被视为无序列表。

大多数操作都有一个关键属性。关键属性是指将此操作与映像中的其他所有操作区分开来的属性。对于文件系统对象,关键属性是该对象的路径。

以下各节介绍了每种 IPS 操作类型以及定义这些操作的属性。操作类型在 pkg(5) 手册页中进行了详细介绍,但在此处再次介绍以供参考。每节中都包含一个示例操作,该操作与其在创建软件包期间在软件包清单中显示的一样。其他属性在发布期间可以自动添加到操作中。

文件操作

file 操作是到目前为止最常见的操作。file 操作表示普通文件。file 操作引用有效负荷,具有以下四个标准属性:

path

安装文件的文件系统路径。这是 file 操作的关键属性。path 属性的值是相对于映像根目录的路径。不要包括前导 /

mode

文件的访问权限。mode 属性的值是采用数字形式的简单权限,而非 ACL。

owner

拥有文件的用户的名称。

group

拥有文件的组的名称。

有效负荷通常指定为位置属性:有效负荷是操作名称后面的第一个单词,它没有属性名称。在已发布的清单中,有效负荷的值是文件内容的 SHA-1 散列。如果在尚未发布的清单中存在有效负荷,则该值表示可以找到有效负荷的路径,如 pkgsend(1) 手册页中所述。如果有效负荷的值包含一个等号 (=)、双引号 (") 或空格字符,则必须使用已命名的 hash 属性而非位置属性。在同一操作中可以同时使用位置属性和 hash 属性,但散列必须完全相同。

file 操作还可以包含以下属性:

preserve

指定在升级时不应覆盖文件的内容(如果确定自文件安装或上次升级后其内容已发生了更改)。在初始安装时,如果找到现有文件,则挽救该现有文件(存储在 /var/pkg/lost+found 中)。

preserve 属性可以使用以下值之一:

renameold

使用扩展名 .old 将现有文件重命名,并将新文件放置到其所在位置中。

renamenew

现有文件保持不变,使用扩展名 .new 安装新文件。

legacy

此文件不是在初始软件包安装时安装的。在升级时,会使用扩展名 .legacy 重命名任何现有文件,并在随后将新文件放入相应位置。

true

现有文件保持不变,也不安装新文件。

overlay

指定操作是允许其他软件包在同一位置交付文件,还是用交付的文件覆盖其他文件。此功能设计用于不参与任何自组装(例如 /etc/motd)且可安全覆盖的配置文件。

如果未指定 overlay,多个软件包将无法向同一位置交付文件。

overlay 属性可以使用以下值之一:

allow

允许另一个软件包将文件交付到同一位置。除非也设置了 preserve 属性,否则此值没有效果。

true

该操作交付的文件将覆盖已指定了 allow 的任何其他操作。

基于覆盖文件的 preserve 属性值保留对已安装文件所做的更改。在删除时,如果仍要安装将被覆盖的操作,则将保留文件的内容,无论是否指定了 preserve 属性。只能一个操作覆盖另一个操作,且 modeownergroup 属性必须匹配。

original_name

此属性用于处理可编辑文件在软件包之间、在位置之间或在这两者之间的移动操作。此属性的值采用的格式为源软件包的名称后跟一个冒号和文件的原始路径。所删除的任何文件将使用其软件包和路径或 original_name 属性的值(如果指定)进行记录。所安装的已设置 original_name 属性的任何可编辑文件将使用具有该名称的文件(如果它在同一打包操作中被删除)。

一旦设置此属性后,就不要更改其值,即使重复重命名软件包或文件也是如此。保持同一个值将允许从所有先前的版本进行升级。

release-note

该属性用于指明此文件包含发行说明文本。该属性的值为软件包 FMRI。如果 FMRI 指定的软件包名称存在于原始映像中,指定的版本比原始映像中的软件包版本更高,则此文件将成为发行说明的一部分。特殊 FMRI feature/pkg/self 是指包含软件包。如果 feature/pkg/self 的版本为 0,则此文件仅在初次安装时是发行说明的一部分。

revert-tag

此属性用于标记应恢复为一个组的可编辑文件。可以指定多个 revert-tag 值。在指定了任何这些标记的情况下调用 pkg revert 命令时,文件将恢复为其清单定义的状态。有关 revert 子命令的信息,请参见 pkg(1) 手册页。

特定类型的文件还可能具有其他属性。对于 ELF 文件,可识别下列属性:

elfarch

ELF 文件的体系结构。此值是 uname -p 在构建文件的体系结构上的输出。

elfbits

此值为 32 或 64。

elfhash

此值是文件中在装入二进制文件时映射到内存中的 ELF 部分的散列值。在确定两个二进制文件的可执行行为是否将不同时,仅需要考虑这些部分。

下面是 file 操作的示例:

file path=usr/bin/pkg owner=root group=bin mode=0755

目录操作

dir 操作类似于 file 操作,也表示文件系统对象,不同之处在于它表示目录而非普通文件。dir 操作具有与 file 操作相同的四个标准属性(pathownergroupmode),其中 path 是关键属性。

在 IPS 中对目录进行引用计数。当显式或隐式引用某目录的最新软件包不再引用该目录时,将删除该目录。如果该目录包含未打包的文件系统对象,则会将这些项移动到 /var/pkg/lost+found 中。

使用以下属性可将未打包的内容移动到一个新目录中:

salvage-from

指定所挽救项的目录。具有此属性的目录在创建时可继承所挽救目录的内容(如果存在)。有关示例,请参见删除或重命名目录时移动未打包的内容

在安装期间,pkg(1) 会检查系统上给定目录操作的所有实例是否具有相同的 ownergroupmode 属性值。如果在系统上或在其他要在同一操作中安装的软件包中发现冲突值,则不会安装 dir 操作。

下面是 dir 操作的示例:

dir path=usr/share/lib owner=root group=sys mode=0755

链接操作

link 操作表示符号链接。link 操作具有以下标准属性:

path

安装符号链接的文件系统路径。这是 link 操作的关键属性。

target

符号链接的目标。链接将解析到的文件系统对象。

link 操作还包括允许同时在系统上安装给定软件包部分的多个版本或多个实现的属性。此类链接是中介链接,允许管理员根据需要轻松切换哪些链接指向哪个版本或实现。这些中介链接在交付应用程序的多个实现中进行了论述。

下面是 link 操作的示例:

link path=usr/lib/libpython2.6.so target=libpython2.6.so.1.0

硬链接操作

hardlink 操作表示硬链接。它具有与 link 操作相同的属性,path 也是其关键属性。

下面是 hardlink 操作的示例:

hardlink path=opt/myapplication/hardlink target=foo

设置操作

set 操作表示软件包级别的属性或元数据,例如软件包描述。

可以识别下列属性:

name

属性的名称。

value

提供给属性的值。

set 操作可以提供软件包设计者选择的任何元数据。以下属性名称对包管理系统具有特定意义:

pkg.fmri

包含方软件包的名称和版本。

info.classification

pkg(5) 客户机可以使用一个或多个标记对软件包进行分类。该值应包含一个方案(例如 org.opensolaris.category.2008org.acm.class.1998)和实际分类(例如 Applications/Games),以冒号 (:) 分隔。packagemanager(1) GUI 使用的方案。附录 A中提供了一组 info.classification 值。

pkg.summary

描述的简短概要。此值显示在 pkg list -s 输出的每行末尾,还显示在 pkg info 输出的某一行中。此值的长度不应超过 60 个字符。此值应对软件包进行描述,但不得重复软件包的名称或版本。

pkg.description

软件包的内容和功能的详细描述,长度通常约为一个段落。此值应描述为何用户可能需要安装此软件包。

pkg.obsolete

如果为 true,则将软件包标记为过时。过时的软件包除了 set 操作外不能具有任何其他操作,且不得标记为已重命名。使软件包过时中介绍了软件包过时。

pkg.renamed

如果为 true,则软件包已被重命名。软件包还必须包括一个或多个 depend 操作,且这些操作指向此软件包已重命名到的软件包版本。软件包不能同时标记为已重命名和过时,但在其他情况下可以具有任意多个 set 操作。重命名、合并和拆分软件包中介绍了软件包重命名过程。

pkg.human-version

IPS 使用的版本方案很严格,不允许 pkg.fmri 版本字段中出现字母或单词。对于给定的软件包,如果存在人们可读的常用版本,则可在此处设置该版本。此值将通过 IPS 工具进行显示。此值不用作版本比较的基准,并且不能用来替换 pkg.fmri 版本。

附录 B 中介绍了一些其他信息性属性以及由 Oracle Solaris 使用的一些属性。

下面是 set 操作的示例:

set name=pkg.summary value="Image Packaging System"

驱动程序操作

driver 操作表示设备驱动程序。driver 操作不引用有效负荷。驱动程序文件自身必须作为 file 操作进行安装。可以识别下列属性。有关这些属性值的更多信息,请参见 add_drv(1M)

name

驱动程序的名称。这通常是(但并不总是)二进制驱动程序文件的文件名。此属性是驱动程序操作的关键属性。

alias

驱动程序的别名。给定的驱动程序可以具有多个 alias 属性。无需任何特殊的引号规则。

class

一个驱动程序类。给定的驱动程序可以具有多个 class 属性。

perms

驱动程序的设备节点的文件系统权限。

clone_perms

此驱动程序的克隆驱动程序的次要节点的文件系统权限。

policy

设备的其他安全策略。给定的驱动程序可以具有多个 policy 属性,但次要设备规范不可以存在于多个属性中。

privs

驱动程序使用的特权。给定的驱动程序可以具有多个 privs 属性。

devlink

/etc/devlink.tab 中的一个项。该值定义了进入文件的确切行,带有由 \t 表示的制表符。有关更多信息,请参见devlinks(1M) 手册页。给定的驱动程序可以具有多个 devlink 属性。

下面是 driver 操作的示例:

driver name=vgatext \
    alias=pciclass,000100 \
    alias=pciclass,030000 \
    alias=pciclass,030001 \
    alias=pnpPNP,900 variant.arch=i386 variant.opensolaris.zone=global

依赖操作

depend 操作表示软件包间的相关项。一个软件包可以依赖于另一个软件包,因为第一个软件包需要第二个软件包中的功能才能运行自身包含的功能或者甚至进行安装。第 4 章中介绍了相关项。

可以识别下列属性:

fmri

表示相关项的目标的 FMRI。此属性是 depend 操作的关键属性。FMRI 值不得包括发布者。将假定软件包名称是完整的(即有根的),即使此名称没有以正斜杠 (/) 开头。require-any 类型的相关项可具有多个 fmri 属性。fmri 值中的版本是可选项,虽然对于某些类型的相关项来说,不带版本的 FMRI 没有任何意义。

FMRI 值不能使用星号 (*),也不能将 latest 标记用于版本。

type

相关项的类型。

require

目标软件包是必需的,而且其版本必须为 fmri 属性中所指定的版本或更高版本。如果未指定版本,则任何版本都满足相关项。如果不能满足其任一 require 相关项,则无法安装软件包。

optional

相关项目标(如果存在)必须处于指定的版本级别或更高级别。

exclude

如果相关项目标处于指定的版本级别或更高级别,则无法安装包含软件包。如果未指定版本,则目标软件包无法与指定相关项的软件包同时安装。

incorporate

该相关项是可选项,但是目标软件包的版本会受到约束。有关约束和冻结的说明,请参见第 4 章

require-any

多个 fmri 属性指定的多个目标软件包中的任一个都可满足相关项(遵循与 require 相关项类型相同的规则)。

conditional

仅当系统上存在 predicate 属性定义的软件包时,才需要相关项目标。

origin

在安装此软件包之前,相关项目标(如果存在)在要修改的映像上必须具有指定值或更大值。如果 root-image 属性的值为 true,则目标必须存在于根目录为 / 的映像上,才能安装此软件包。

group

除非软件包出现在映像避免列表上,否则该相关项目标是必需的。请注意,过时软件包会无提示地满足 group 相关项。有关映像避免列表的信息,请参见 pkg(1) 手册页中的 avoid 子命令。

parent

如果映像不是子映像(例如区域),则会忽略相关项。如果映像是子映像,则相关项目标必须存在于父映像中。与 parent 相关项匹配的版本与用于 incorporate 相关项的版本相同。

predicate

表示条件性相关项的谓词的 FMRI。

root-image

仅对 origin 相关项有影响,如上所述。

下面是 depend 操作的示例:

depend fmri=crypto/ca-certificates type=require

许可证操作

license 操作表示许可证或其他与软件包内容相关联的信息文件。软件包可以通过 license 操作将许可证、免责声明或其他指南交付到软件包安装程序。

license 操作的有效负荷将交付到与软件包相关的映像元数据目录中,且应仅包含用户可读的文本数据。license 操作有效负荷不应包含 HTML 或任何其他形式的标记。通过各个属性,license 操作可以向客户机指示必须显示或接受相关的有效负荷。显示或接受的方法由客户机决定。

可以识别下列属性:

license

为许可证提供有意义的描述,以帮助用户在无需阅读许可证文本本身的情况下确定内容。此属性是 license 操作的关键属性。

其中一些示例值包括:

  • ABC Co. Copyright Notice

  • ABC Co. Custom License

  • Common Development and Distribution License 1.0 (CDDL)

  • GNU General Public License 2.0 (GPL)

  • GNU General Public License 2.0 (GPL) Only

  • MIT License

  • Mozilla Public License 1.1 (MPL)

  • Simplified BSD License

建议尽可能在描述中包括许可证的版本,如上所示。license 值在软件包内必须唯一。

must-accept

如果为 true,则用户必须先接受此许可证,才能安装或更新相关软件包。省略此属性等效于 false。接受的方法(例如,交互式或基于配置)由客户端决定。

must-display

如果为 true,则在执行打包操作期间客户机必须显示 license 操作的有效负荷。省略此属性等效于 false。此属性不应用于版权声明,仅用于实际许可证或执行操作期间必须显示的其他材料。显示的方法由客户端决定。

下面是 license 操作的示例:

license license="Apache v2.0"

传统操作

legacy 操作表示由传统 SVR4 包管理系统使用的软件包数据。与 legacy 操作相关联的属性将添加到传统 SVR4 包管理系统的数据库中,以便查询这些数据库的工具可以像实际安装了传统软件包一样工作。特别是,指定 legacy 操作应该会导致由 pkg 属性指定的软件包满足 SVR4 相关项。

可以识别下列属性。有关关联的参数的描述,请参见 pkginfo(4) 手册页。

category

CATEGORY 参数的值。缺省值为 system

desc

DESC 参数的值。

hotline

HOTLINE 参数的值。

name

NAME 参数的值。缺省值为 none provided

pkg

要安装的软件包的缩写。缺省值为软件包的 FMRI 中的名称。此属性是 legacy 操作的关键属性。

vendor

VENDOR 参数的值。

version

VERSION 参数的值。缺省值为软件包的 FMRI 中的版本。

下面是 legacy 操作的示例:

legacy pkg=SUNWcsu arch=i386 category=system \
    desc="core software for a specific instruction-set architecture" \
    hotline="Please contact your local service provider" \
    name="Core Solaris, (Usr)" vendor="Oracle Corporation" \
    version=11.11,REV=2009.11.11 variant.arch=i386

签名操作

在 IPS 中,签名操作用作软件包签名支持功能的一部分。第 9 章中详细介绍了签名操作。

用户操作

user 操作按照 /etc/passwd/etc/shadow/etc/group/etc/ftpd/ftpusers 文件中指定的方式定义 UNIX 用户。来自 user 操作的信息将添加到相应文件中。

可以识别下列属性:

username

用户的唯一名称。

password

用户的加密口令。缺省值为 *LK*

uid

用户的唯一数字 ID。缺省值为 100 之下的第一个自由值。

group

用户的主组名称。在 /etc/group 中必须能够找到此名称。

gcos-field

用户的真实姓名,如 /etc/passwd 中的 GECOS 字段所定义。缺省值为 username 属性的值。

home-dir

用户的起始目录。缺省值为 /

login-shell

用户的缺省 shell。缺省值为空。

group-list

用户所属的辅助组。请参见 group(4) 手册页。

ftpuser

可设置为 truefalse。缺省值 true 指示允许用户通过 FTP 登录。请参见 ftpusers(4) 手册页。

lastchg

1970 年 1 月 1 日至上次修改口令的日期之间的天数。缺省值为空。

min

所需的相邻两次更改口令之间的最小天数。必须将此字段设置为 0 或更大值才能启用口令有效期。缺省值为空。

max

口令的最大有效天数。缺省值为空。请参见 shadow(4) 手册页。

warn

用户在口令到期之前多少天收到警告。

inactive

允许该用户不活动的天数。按每台计算机对此进行计数。可从计算机的 lastlog 文件获取有关上次登录的信息。

expire

表示为自 UNIX 纪元(1970 年 1 月 1 日)后的天数的绝对日期。达到此数字时,将无法再进行登录。例如,到期值为 13514 指定登录将在 2007 年 1 月 1 日失效。

flag

设置为空。

下面是 user 操作的示例:

user gcos-field="pkg(5) server UID" group=pkg5srv uid=97 username=pkg5srv

组操作

group 操作按照 group(4) 文件中指定的方式定义 UNIX 组。不支持组口令。使用 group 操作定义的组最初不具有用户列表。可以使用 user 操作添加用户。

可以识别下列属性:

groupname

组名的值。

gid

组的唯一数字 ID。缺省值为小于 100 的第一个自由组。

下面是 group 操作的示例:

group groupname=pkg5srv gid=97

软件包系统信息库

软件包系统信息库包含来自一个或多个发布者的软件包。可以将系统信息库配置为通过各种不同的方式进行访问:HTTP、HTTPS、文件(在本地存储设备上或通过 NFS 或 SMB)以及作为自包含软件包归档文件(通常扩展名为 .p5p)。

使用软件包归档文件可以方便地分发 IPS 软件包,作为软件包归档文件发布中将进一步讨论软件包归档文件。

通过 HTTP 或 HTTPS 访问的系统信息库具有一个与之关联的服务器进程 pkg.depotd。有关更多信息,请参见pkg.depotd(1M) 手册页。有关示例,请参见《复制和创建 Oracle Solaris 11.1 软件包系统信息库》中的"使用 HTTP 接口检索软件包"

对于文件系统信息库,系统信息库软件将作为访问方客户机的一部分运行。系统信息库使用 pkgrepopkgrecv 命令创建,如《复制和创建 Oracle Solaris 11.1 软件包系统信息库》中所示。