JavaScript is required to for searching.
跳过导航链接
退出打印视图
添加和更新 Oracle Solaris 11.1 软件包     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  映像包管理系统简介

2.  IPS 图形用户界面

3.  获取有关软件包的信息

4.  安装和更新软件包

5.  配置已安装的映像

配置发布者

显示发布者信息

添加、修改或删除软件包发布者

控制可选组件的安装

显示和更改变量值

显示和更改侧面值

将软件包锁定为指定版本

放宽由 Incorporation 指定的版本约束

指定缺省的应用程序实现

避免安装组软件包中的某些软件包

更新映像

映像更新的最佳做法

指定要安装的版本

更新之前指定版本约束

约束可用的软件包

将映像降级

更多更新命令选项

配置映像和发布者属性

引导环境策略映像属性

签名软件包的属性

签名的软件包的映像属性

签名的软件包的发布者属性

配置软件包签名属性

其他映像属性

设置映像属性

显示映像属性的值

设置映像属性的值

重置映像属性的值

创建映像

查看操作历史记录

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

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

控制可选组件的安装

软件可以具有可选组件和互斥组件。可选组件的示例包括语言环境和文档。互斥组件的示例包括 SPARC 或 x86 和调试或非调试二进制文件。在 IPS 中,可选组件称为侧面,互斥组件称为变量

侧面和变量是在映像上设置的特殊属性,也是在软件包中的操作上设置的标记。大多数变量标记可以具有多个值。在某一操作上设置的侧面标记只能具有值 true。将某一操作的侧面和变量标记值与映像中设置的侧面和变量值相比较,可确定是否安装该软件包操作。例如,如果将某一特定的语言环境侧面设置为 false,则指定了该侧面的所有文件或其他操作都不会安装,且指定了该侧面的当前已安装文件会被卸载。

要查看映像上设置的侧面和变量的当前值,请使用 pkg facetpkg variant 命令。要修改映像上设置的侧面和变量的值,请使用 pkg change-facetpkg change-variant 命令。请参见 pkg(1) 手册页和下面的示例。

每个侧面和变量标记都有一个名称和值。单个操作可以具有多个侧面和变量标记。具有多个侧面和变量标记的组件有多种,例如供开发者使用的特定于体系结构的头文件,或仅用于 SPARC 全局区域的组件。

以下是变量标记的一个示例 variant.arch=sparc。以下是侧面标记的一个示例 variant.arch=sparc。引用侧面和变量时,通常不带前导字符串 facet.variant.

侧面为布尔型:只能设置为 true(启用)或 false(禁用)。缺省情况下,映像中的所有侧面都被视为 true。某一操作的侧面标记只能具有 true 值;其他值代表的行为不确定。映像上设置的侧面可以为完整侧面(如 doc.man)或模式(如 locale.*)。要禁用侧面名称空间的一部分,仅启用其中的几个侧面时,这种灵活性很有用。例如,您可以禁用所有语言环境,然后仅启用一个或两个特定语言环境,如以下示例所示:

$ pfexec pkg change-facet 'locale.*=false'
[output about packages being updated]
$ pfexec pkg change-facet locale.en_US=true
[output about packages being updated]

大多数变量可以具有任意数量的值。例如,arch 变量可以设置为 i386sparcppcarm 或分发支持的任何体系结构。(Oracle Solaris 中仅使用 i386sparc。)但 debug 变量例外。debug 变量只能设置为 truefalse;其他值的行为不确定。如果文件操作同时具有非调试和调试版本,则必须针对这两个版本明确设置适用的 debug 变量,如以下示例所示:

file group=sys mode=0644 overlay=allow owner=root \
  path=etc/motd pkg.csize=115 pkg.size=103 preserve=true \
  variant.debug.osnet=true

file group=sys mode=0644 overlay=allow owner=root \
  path=etc/motd pkg.csize=68 pkg.size=48 preserve=true \
  variant.debug.osnet=false 

要安装使用变量的软件包,必须在映像上设置变量值。archzone 变量由创建映像和安装其初始内容的程序设置。缺省情况下,debug.* 变量在映像中设置为 false

以下算法介绍了在映像上设置的侧面和变量会如何影响是否安装特定操作。

您可以创建自己的侧面和变量标记。以下是 Oracle Solaris 中的常用标记。

变量名
可能值
variant.arch
sparc, i386
variant.opensolaris.zone
global, nonglobal
variant.debug.*
truefalse

以下列表描述了 Oracle Solaris 中使用的一小部分侧面标记:

facet.devel             facet.doc
facet.doc.html          facet.doc.info
facet.doc.man           facet.doc.pdf
facet.locale.de         facet.locale.en_GB
facet.locale.en_US      facet.locale.fr
facet.locale.ja_JP      facet.locale.zh_CN

可以显示在当前映像上设置的变量和侧面的值,并且可以更改当前映像中的变量和侧面。更改变量和侧面可能会更新大量软件包,并且可能需要新的 BE。在进行任何更改之前可使用 -nv 查看将执行哪些更改。

显示和更改变量值

可使用 pkg variant 命令显示设置的变量值。

/usr/bin/pkg variant [-H] [variant_nsmr ...]
$ pkg variant
VARIANT                  VALUE
variant.opensolaris.zone global
variant.arch             i386
$ pkg variant -H variant.arch
variant.arch i386

可使用 pkg change-variant 命令更改变量的值。

/usr/bin/pkg change-variant [-nvq] [-C n] [-g path_or_uri ...]
    [--accept] [--licenses] [--no-be-activate]
    [--no-backup-be | --require-backup-be] [--backup-be-name name]
    [--deny-new-be | --require-new-be] [--be-name name]
    variant_name=value ...

由于将影响大量软件包,因此以下命令将生成大量输出。请注意,缺省情况下不会创建新的 BE,而是创建备份 BE。有关何时创建 BE 的信息,请参见引导环境策略映像属性

可使用 -C 选项在 n 个非全局区域与全局区域中同时更改变量。有关使用 -C 选项的示例,请参见同时更新多个非全局区域

使用 -n 选项可在不进行实际更改的情况下查看不使用 -n 执行操作时将更改的内容。

$ pfexec pkg change-variant -nv --accept 'variant.debug.*=true'
            Packages to update:       851
     Variants/Facets to change:         3
     Estimated space available:  49.88 GB
Estimated space to be consumed: 270.57 MB
       Create boot environment:        No
Create backup boot environment:       Yes
          Rebuild boot archive:        No

Changed variants/facets:
  variant variant.debug.*: true
    facet facet.locale.en_US: None
    facet facet.locale.*: None
Changed packages:
solaris
  ...

显示和更改侧面值

可使用 pkg facet 命令显示设置的侧面值。

/usr/bin/pkg facet [-H] [facet_name ...]
$ pkg facet
FACETS             VALUE
facet.locale.en_US True
facet.locale.en    True
facet.locale.*     False
$ pkg facet -H 'facet.locale.*'
facet.locale.* False

可使用 pkg change-facet 命令更改侧面的值。

/usr/bin/pkg change-facet [-nvq] [-C n] [-g path_or_uri ...]
    [--accept] [--licenses] [--no-be-activate]
    [--no-backup-be | --require-backup-be] [--backup-be-name name]
    [--deny-new-be | --require-new-be] [--be-name name] 
    facet_name=[True|False|None] ...

可使用 -C 选项在 n 个非全局区域与全局区域中同时更改侧面。有关使用 -C 选项的示例,请参见同时更新多个非全局区域

使用 -n 选项可在不进行实际更改的情况下查看不使用 -n 执行操作时将更改的内容。

如果侧面值设置为 None,将从当前映像中删除侧面指定。

由于将影响大量软件包,因此以下命令将生成大量输出。该操作可能需要很长时间,并导致该映像和软件包系统信息库之间发生大量网络通信流量。请注意,缺省情况下不会创建新的 BE,而是创建备份 BE。有关何时创建 BE 的信息,请参见引导环境策略映像属性

$ pfexec pkg change-facet -nv 'facet.locale.*=true'
            Packages to update:      851
     Variants/Facets to change:        1
     Estimated space available: 49.88 GB
Estimated space to be consumed:  3.13 GB
       Create boot environment:       No
Create backup boot environment:      Yes
          Rebuild boot archive:       No

Changed variants/facets:
    facet facet.locale.*: True
Changed packages:
solaris
  ...