跳过导航链接 | |
退出打印视图 | |
![]() |
添加和更新 Oracle Solaris 11 软件包 Oracle Solaris 11 Information Library (简体中文) |
要实现映像策略,请设置映像属性。本节介绍映像和发布者属性,以及如何设置这些属性。有关映像属性的说明,另请参见 pkg(1) 手册页中的“映像属性”。
映像是可安装 IPS 软件包和可执行其他 IPS 操作的位置。
引导环境 (boot environment, BE) 是可引导的映像实例。您可以在系统上维护多个 BE,每个 BE 中都可以安装不同的软件版本。引导系统时,您可以选择引导进入系统上的任何 BE。可通过软件包操作自动创建新的 BE。还可以显式创建新的 BE。是否创建新的 BE 取决于映像策略,具体如本节中所述。
缺省情况下,执行以下操作之一时,将自动创建新的 BE:
更新特定关键系统软件包,如一些驱动程序和其他内核组件。此操作可在安装、卸载、更新、更改变量或更改侧面时发生。
执行 pkg update 命令更新所有具有可用更新的软件包时通常会创建新的 BE。
指定以下任一选项:--be-name、--require-ne -be、--back p-be-name、--require-backup-be。
将 be-policy 映像策略设置为 always-new。根据该策略,所有软件包操作将在设置为下次引导时的活动 BE 的新 BE 中执行。
创建了新的 BE 时,系统将执行以下步骤:
创建当前 BE 的克隆。
克隆 BE 包括原始 BE 的主根数据集之下按分层结构排列的所有内容。共享文件系统不在根数据集之下,也不进行克隆,而是由新的 BE 访问原始的共享文件系统。
在克隆 BE 中更新软件包,而不在当前 BE 中更新任何软件包。
如果在当前 BE 中配置了非全局区域,将在新的 BE 中配置这些现有区域。
将新 BE 设置为下次引导系统时的缺省引导选项,除非指定 --no-be-activate。当前 BE 将保留为备用引导选项。
如果需要新的 BE,但是没有足够的空间来创建新的 BE,可能需要删除不需要的现有 BE。有关 BE 的更多信息,请参见《创建和管理 Oracle Solaris 11 引导环境》。
有关设置以下映像属性的说明,请参见设置映像属性。
指定在打包操作期间何时创建引导环境。允许使用以下值:
应用缺省 BE 创建策略 create-backup。
所有软件包操作均需要重新引导:在设置为下次引导时的活动 BE 的新 BE 中执行这些操作。除非显式请求,否则不会创建备份 BE。
该策略最为安全,但是它比大多数站点的需要更为严格,因为在不重新引导的情况下无法添加任何软件包。
对于需要重新引导的软件包操作,该策略创建设置为下次引导时的活动 BE 的新 BE。如果修改了软件包或安装了可能影响内核的内容,并且该操作影响实时 BE,将创建备份 BE,但不会将其设置为活动状态。也可以显式请求创建备份 BE。
仅当新安装的软件导致系统不稳定时(有可能发生,但比较少见),该策略才具有潜在风险。
对于需要重新引导的软件包操作,该策略创建设置为下次引导时的活动 BE 的新 BE。除非显式请求,否则不会创建备份 BE。
该策略的风险最大,因为如果对活动 BE 所做的软件包更改使得无法进行进一步更改,则可能不存在用于回退的最近 BE。
如果要安装签名的软件包,请设置本节所述的映像属性和发布者属性以验证软件包签名。
配置以下映像属性以使用签名的软件包。
该属性的值确定在映像中安装、更新、修改或验证软件包时将对清单执行何种检查。应用于软件包的最终策略取决于映像策略和发布者策略的组合。该策略组合的严格程度至少相当于这两个策略单独执行时较严格的那一个。缺省情况下,软件包客户机不检查证书是否已撤销。要启用这些检查(可能需要客户机访问外部 Web 站点),请将 check-certificate-revocation 映像属性设置为 true。允许使用以下值:
忽略所有清单的签名。
验证所有具有签名的清单的签名是否有效,但不要求签名所有安装的软件包。
这是缺省值。
要求所有新安装的软件包至少具有一个有效签名。如果安装的软件包不具备有效签名,pkg fix 和 pkg verify 命令也会发出警告。
与 require-signatures 遵循相同的要求,但还要求 signature-required-names 映像属性中列出的字符串显示为用于验证签名信任链的证书的通用名称。
此属性的值是在验证软件包签名时必须视为证书通用名称的名称列表。
此属性的值是包含映像信任锚点 (trust anchor) 的目录的路径名。此路径是映像的相对路径。
缺省值为 ignore。
配置以下发布者属性以使用来自特定发布者的签名的软件包。
除了此属性仅适用于来自指定发布者的软件包外,此属性的功能与 signature-policy 映像属性的功能相同。
除了此属性仅适用于来自指定发布者的软件包外,此属性的功能与 signature-required-names 映像属性的功能相同。
可使用 set-property、add-property-value、remove-property-value 和 unset-property 子命令配置此映像的软件包签名属性。
可使用 set-publisher 子命令的 --set-property、--add-property-value、--remove-property-value 和 --unset-property 选项指定特定发布者的签名策略和必需名称。
以下示例将该映像配置为要求所有软件包都签名。该示例还要求将字符串 "oracle.com" 视为信任链中某个证书的通用名称。
# pkg set-property signature-policy require-names oracle.com
以下示例将该映像配置为要求所有已签名软件包都进行验证。
# pkg set-property signature-policy verify
以下示例将该映像配置为要求从发布者 example.com 安装的所有软件包必须签名。
# pkg set-publisher --set-property signature-policy=require-signatures example.com
以下示例添加必需的签名。此示例将字符串 trustedname 添加到映像的通用名称列表中,这些通用名称必须显示在签名的信任链中才能视为有效。
# pkg add-property-value signature-require-names trustedname
以下示例删除必需的签名。此示例从映像的通用名称列表中删除字符串 trustedname,这些通用名称必须显示在签名的信任链中才能视为有效。
# pkg remove-property-value signature-require-names trustedname
以下示例为指定的发布者添加必需的签名。此示例将字符串 trustedname 添加到 example.com 发布者的通用名称列表中,这些通用名称必须显示在签名的信任链中才能视为有效。
# pkg set-publisher --add-property-value \ signature-require-names=trustedname example.com
指定一个路径名称,其指向执行 SSL 操作所需的 CA 证书的保存目录。此目录的格式特定于底层 SSL 实现。要对可信 CA 证书使用替代位置,请将此值更改为指向另一个目录。有关 CA 目录的要求,请参见 SSL_CTX_load_verify_locations(3openssl) 的 CApath 部分。
缺省值为 /etc/openssl/certs。
如果此属性设置为 True,则软件包客户机将尝试访问用于签名验证的证书中的任何 CRL 分发点,以确定证书自颁发以来是否已被撤销。
缺省值为 False。
如果此属性设置为 True,则完成安装或更新操作后,软件包客户机将删除其内容高速缓存中的文件。对于更新操作,仅从源 BE 中删除内容。如果随后目标 BE 中发生了打包操作,并且此选项未发生更改,则软件包客户机将刷新其内容高速缓存。
在磁盘空间有限的系统上,可以使用此属性使内容高速缓存保持为较小的大小。此属性可能会导致花费更长的时间来完成操作。
缺省值为 True。
此属性通知客户机使用 mDNS 和 DNS-SD 发现本地链路内容镜像。如果此属性设置为 True,则客户机尝试从其动态发现的镜像中下载软件包内容。要运行一个通过 mDNS 通告其内容的镜像,请参见 pkg.depotd(1m)。
缺省值为 False。
执行网络操作时发送映像的通用唯一标识符 (Universally Unique Identifier, UUID)。尽管用户可以禁用此选项,但是某些网络系统信息库可能会拒绝与不提供 UUID 的客户机通信。
缺省值为 True。
此属性指示映像是否应使用系统信息库作为映像和发布者配置的源,以及作为与提供的发布者通信的代理。有关系统信息库的信息,请参见 pkg.sysrepo(1m)。
缺省值为 ignore。
可使用 set-property、add-property-value、remove-property-value 和 unset-property 子命令配置此映像的属性。
/usr/bin/pkg property [-H] [propname ...] /usr/bin/pkg set-property propname propvalue /usr/bin/pkg add-property-value propname propvalue /usr/bin/pkg remove-property-value propname propvalue /usr/bin/pkg unset-property propname ...
可使用 pkg property 命令查看映像的属性。
$ pkg property PROPERTY VALUE be-policy default ca-path /etc/openssl/certs check-certificate-revocation False display-copyrights True flush-content-cache-on-success False mirror-discovery False preferred-authority solaris publisher-search-order ['solaris', 'opensolaris.org', 'extra'] pursue-latest True send-uuid True signature-policy verify signature-required-names [] trust-anchor-directory etc/certs/CA use-system-repo False
可使用 pkg set-publisher 命令选项设置 preferred-authority 和 publisher-search-order 属性。请参见添加、修改或删除软件包发布者。
可使用 pkg set-property 命令设置映像属性的值或添加并设置属性。
以下示例设置了 mirror-discovery 属性的值。
# pkg set-property mirror-discovery True # pkg property -H mirror-discovery mirror-discovery True
可使用 pkg unset-property 命令将指定属性的值重置为这些属性的缺省值。
# pkg unset-property mirror-discovery $ pkg property -H mirror-discovery mirror-discovery False