作者:Peter Dennis 和 Alta Elstad
2013 年 5 月发布
Java 是 Oracle Solaris 11 系统软件的一部分。通常,最好的做法是同时更新系统软件,作为一个一起测试的支持集。Oracle Solaris 11 使用名为 incorporation 的特殊软件包将特定软件集聚在一起,该软件包指定可安装的软件包版本。incorporation 中指定的软件包可能本身是 incorporation,也可能需要安装另一个软件包的特定版本。因此一个 incorporation 影响(或该 incorporation 约束)的软件包集可能比 incorporation 软件包中指定的集合大得多。
|
如果您尝试安装的软件包版本与 incorporation 约束的版本不同,您将收到一条错误消息,更新或安装操作将失败。一般情况下,对于一个版本受 incorporation 约束的软件包,支持通过更新 incorporation 软件包来更新它。
有时您需要安装的受 incorporation 约束的软件,其版本不同于 incorporation 允许的版本。例如,您可能需要安装一个安全更新。本文介绍如何更新一个受 incorporation 约束的软件而不修改受该 incorporation 约束的任何其他软件,最终仍然得到一个受支持的系统。本示例更新的软件是 Java。
有关 incorporation 的更多信息,请参见“从 Oracle 支持信息库更新 Oracle Solaris 11 系统的更多技巧”一文中的“Oracle Solaris 11 软件结构”。
Oracle Solaris 11.1 安装版本受 java-incorporation
软件包约束的 Java SE 7 软件包。仅通过更新 java-incorporation
软件包无法更新此软件包,因为该软件包又受 pkg:/entire
incorporation 软件包约束。
要更新 Java 而不更新 pkg:/entire
软件包,请解锁 Java incorporation 软件包的 version-lock
facet,然后更新 Java incorporation 软件包,如以下过程所述,该过程介绍了如何更新全局区域。
有关 version-lock
facet 的更多信息,请参见添加和更新软件包 第 5 章“配置安装的映像”中的“放宽 incorporation 指定的版本约束”。
确保 java-incorporation
软件包有可用的更新。
# pkg list -af java-incorporation NAME (PUBLISHER) VERSION IFO consolidation/java/java-incorporation 0.5.11-0.175.1.7.0.4.0 --- consolidation/java/java-incorporation 0.5.11-0.175.1.0.0.24.0 i--
如果映像(“I”列中的“i”)中当前安装的这些软件包的版本是最新可用版本,则无可更新,停止操作。
如果您认为应该有更新的版本可用,可检查您的 solaris
发布者源点。如果您的 solaris
发布者源点是本地位置,请确保该本地信息库与最新更新软件包同步。如果更改发布者源点或更新本地软件包信息库,请刷新发布者或者刷新或重新构建信息库。
version-lock
facet:将 java-incorporation
软件包的 version-lock
facet 的值更改为 false
,如清单 1 所示。要更新的软件包的数量是该映像中安装的软件包数,因为会针对此 facet 检查映像中的每个软件包。
# pkg change-facet \ facet.version-lock.consolidation/java/java-incorporation=false Packages to update: 851 Variants/Facets to change: 1 Create boot environment: No Create backup boot environment: Yes Planning linked: 1/1 done PHASE ITEMS Removing old actions 1/1 Updating image state Done Creating fast lookup database Done Reading search index Done Building new search index 851/851
清单 1
使用 pkg facet
命令确认 facet 更改的值。
# pkg facet FACETS VALUE facet.version-lock.consolidation/java/java-incorporation False
更新 java-incorporation
软件包。作为优秀实践,先使用 -nv
选项进行更新,如清单 2 所示,查看将更新哪些内容。
# pkg update -nv java-incorporation Packages to update: 2 Estimated space available: 77.61 GB Estimated space to be consumed: 377.26 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed packages: solaris consolidation/java/java-incorporation 0.5.11,5.11-0.175.1.0.0.24.0:20120904T175431Z -> 0.5.11,5.11-0.175.1.7.0.4.0:20130429T150946Z runtime/java/jre-7 1.7.0.7,5.11-0.175.1.0.0.24.0:20120904T175502Z -> 1.7.0.21,5.11-0.175.1.7.0.4.0:20130429T151023Z Planning linked: 0/1 done; 1 working: zone:z1 Linked image 'zone:z1' output: | Estimated space available: 77.61 GB | Estimated space to be consumed: 28.95 MB | Rebuild boot archive: No ` Planning linked: 1/1 done
清单 2
如果您感到满意,不带 -n
选项执行更新。作为优秀实践,使用 --be-name
选项(如清单 3 所示)只在新的引导环境 (BE) 中进行更改,当前引导环境作为备份保持不变。
# pkg update -v --be-name s11.1javaupdate java-incorporation Packages to update: 2 Estimated space available: 77.57 GB Estimated space to be consumed: 377.26 MB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: No Changed packages: solaris consolidation/java/java-incorporation 0.5.11,5.11-0.175.1.0.0.24.0:20120904T175431Z -> 0.5.11,5.11-0.175.1.7.0.4.0:20130429T150946Z runtime/java/jre-7 1.7.0.7,5.11-0.175.1.0.0.24.0:20120904T175502Z -> 1.7.0.21,5.11-0.175.1.7.0.4.0:20130429T151023Z Planning linked: 0/1 done; 1 working: zone:z1 Linked image 'zone:z1' output: | Estimated space available: 77.57 GB | Estimated space to be consumed: 28.95 MB | Rebuild boot archive: No ` Planning linked: 1/1 done DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 2/2 191/191 62.4/62.4 1.5M/s Downloading linked: 0/1 done; 1 working: zone:z1 Downloading linked: 1/1 done PHASE ITEMS Removing old actions 7/7 Installing new actions 8/8 Updating modified actions 190/190 Updating package state database Done Updating package cache 2/2 Updating image state Done Creating fast lookup database Done Reading search index Done Updating search index 2/2 Executing linked: 0/1 done; 1 working: zone:z1 Executing linked: 1/1 done A clone of solaris11.1 exists and has been updated and activated. On the next boot the Boot Environment s11.1javaupdate will be mounted on '/'. Reboot when ready to switch to this updated BE.
清单 3
确认软件包已经在新的引导环境中更新:
# pkg list java-incorporation NAME (PUBLISHER) VERSION IFO consolidation/java/java-incorporation 0.5.11-0.175.1.0.0.24.0 i-- # beadm mount s11.1javaupdate /mnt # pkg -R /mnt list java-incorporation NAME (PUBLISHER) VERSION IFO consolidation/java/java-incorporation 0.5.11-0.175.1.7.0.4.0 i-- # beadm unmount s11.1javaupdate
更改全局区域中的 facet 值不会 改变非全局区域中的 facet 值。在某些情况下,在全局区域中安装或更新软件包也会影响非全局区域。Java 不是 这种情况:您可以在全局区域和非全局区域安装不同的 Java 版本。如果非全局区域中需要更新 Java 版本,可单独执行这些更新,如下所示。
如果在全局区域更新过程中使用 --be-name
选项,可能需要重新引导到新 BE,并在其中更新非全局区域。
在以下示例中,只更新 java-incorporation
软件包。请注意,在上面全局示例中,更新了 java-incorporation
软件包和 jre-7
软件包。本示例中的非全局区域并未安装 jre-7
软件包。解锁和更新 java-incorporation
软件包可确保如果稍后在此区域中安装 Java 7,将安装更新的版本。
java-incorporation
软件包版本:# zlogin z1 [Connected to zone 'z1' pts/4] Oracle Corporation SunOS 5.11 11.1 September 2012 root@z1:~# pkg list -af java-incorporation NAME (PUBLISHER) VERSION IFO consolidation/java/java-incorporation 0.5.11-0.175.1.7.0.4.0 --- consolidation/java/java-incorporation 0.5.11-0.175.1.0.0.24.0 i--
version-lock
facet:将 java-incorporation
软件包的 version-lock
facet 值更改为 false
,如清单 4 所示。
root@z1# pkg change-facet \ facet.version-lock.consolidation/java/java-incorporation=false Packages to update: 183 Variants/Facets to change: 1 Create boot environment: No Create backup boot environment: Yes PHASE ITEMS Removing old actions 1/1 Updating image state Done Creating fast lookup database Done
清单 4
更新 java-incorporation
软件包,如清单 5 所示。虽然本示例未显示 -n
或 --be-name
选项,但您可以在非全局区域中使用这些选项。有关如何使用这些选项,请参见上面的全局区域示例。
root@z1# pkg update java-incorporation Packages to update: 1 Create boot environment: No Create backup boot environment: Yes DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 3/3 0.0/0.0 427k/s PHASE ITEMS Removing old actions 5/5 Installing new actions 5/5 Updating modified actions 1/1 Updating package state database Done Updating package cache 1/1 Updating image state Done Creating fast lookup database Done
清单 5
确认已更新软件包:
root@z1# pkg list java-incorporation NAME (PUBLISHER) VERSION IFO consolidation/java/java-incorporation 0.5.11-0.175.1.7.0.4.0 i--
有关如何解锁软件包的更多信息,请参见以下资源:
以下是有关 Oracle Solaris 11 的其他一些资源:
Peter Dennis 是 Oracle Solaris Revenue Product Engineering 小组的首席工程师。他曾从事多项技术工作:文件系统、卷管理和备份、集群和最终用户通用工具。目前他是 Oracle Solaris 11 更新版本的技术负责人。
Alta Elstad 是支持 Oracle Solaris 11 软件包的技术文档作家。
修订版 1.0,2013 年 5 月 16 日 |