跳过导航链接 | |
退出打印视图 | |
添加和更新 Oracle Solaris 11.1 软件包 Oracle Solaris 11.1 Information Library (简体中文) |
每个属于 Oracle Solaris 11 OS 的软件包都对 incorporation 软件包具有依赖性。Incorporation 软件包约束其中合并的软件包的版本,以帮助系统在更新后仍保持可支持状态。某些合并的软件包可以安全地降级或升级到与 incorporation 所指定的版本不同的版本。这类合并的软件包在 incorporation 软件包中指定了 version-lock.pkg_name 侧面属性。 version-lock.pkg_name 侧面的缺省值为 true。要放宽对软件包的版本约束,请将其 version-lock.pkg_name 侧面的值设置为 false。
在以下示例中,您希望将软件包降级到较早版本。pkg update 命令可对软件包进行降级与升级。
$ pkg list -af library/security/openssl NAME (PUBLISHER) VERSION IFO library/security/openssl 1.0.0.10-0.175.1.0.0.19.0 i-- library/security/openssl 1.0.0.10-0.175.1.0.0.18.0 --- $ pfexec pkg update library/security/openssl@1.0.0.10-0.175.1.0.0.18.0 Creating Plan (Solver setup): | pkg update: No matching version of library/security/openssl can be installed: Reject: pkg://solaris/library/security/openssl@1.0.0.10,5.11-0.175.1.0.0.18.0:20120611T201116Z Reason: This version is excluded by installed incorporation pkg://solaris/consolidation/userland/userland-incorporation@0.5.11,5.11-0.175.1.0.0.19.0:20120625T163952Z
要放宽对该软件包的版本约束,请将其 version-lock 侧面设置为 false。然后再次尝试降级。请注意,未创建一个新的 BE,而是创建了一个备份 BE。有关何时创建 BE 的信息,请参见引导环境策略映像属性。
$ pfexec pkg change-facet facet.version-lock.library/security/openssl=false Packages to update: 850 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 Reading search index Done Building new search index 850/850 $ pfexec pkg update library/security/openssl@1.0.0.10-0.175.1.0.0.18.0 Packages to update: 1 Create boot environment: No Create backup boot environment: Yes DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 10/10 1.6/1.6 0B/s PHASE ITEMS Removing old actions 3/3 Installing new actions 3/3 Updating modified actions 14/14 Updating package state database Done Updating package cache 1/1 Updating image state Done Creating fast lookup database Done Reading search index Done Updating search index 1/1 $ pkg list library/security/openssl NAME (PUBLISHER) VERSION IFO library/security/openssl 1.0.0.10-0.175.1.0.0.18.0 i--
要防止降级或升级该软件包,请将该软件包冻结在当前版本。软件包列表中的 “f” 指示软件包已冻结。
$ pfexec pkg freeze -c "Downgrade to avoid bug" library/security/openssl library/security/openssl was frozen at 1.0.0.10-0.175.1.0.0.18.0:20120611T201116Z $ pkg list library/security/openssl NAME (PUBLISHER) VERSION IFO library/security/openssl 1.0.0.10-0.175.1.0.0.18.0 if-
要重新启用降级或升级,请使用 pkg unfreeze 命令来删除版本冻结。如果软件包的安装版本低于 incorporation 软件包中指定的版本,则将此软件包的 version-lock 侧面设置为 true 将安装 incorporation 软件包中指定的版本。
如果其他已安装的软件包与您要降级或升级的软件包之间存在 require 依赖关系,则您可能还需要对这些相关的软件包放宽版本约束。在以下示例中,已在 hexedit 软件包上解除了版本约束,但由于在 system/library 软件包中存在版本约束,所以安装遭到拒绝。
$ pfexec pkg install editor/hexedit@1.2.12-0.175.1.0.0.21.0 Creating Plan (Solver setup): - pkg install: No matching version of editor/hexedit can be installed: Reject: pkg://solaris/editor/hexedit@1.2.12,5.11-0.175.1.0.0.21.0:20120723T170720Z Reason: All versions matching 'require' dependency pkg:/system/library@0.5.11,5.11-0.175.1.0.0.20.0 are rejected Reject: pkg://solaris/system/library@0.5.11,5.11-0.175.1.0.0.20.0:20120709T163421Z pkg://solaris/system/library@0.5.11,5.11-0.175.1.0.0.21.0:20120723T163000Z Reason: This version is excluded by installed incorporation pkg://solaris/consolidation/osnet/osnet-incorporation@0.5.11,5.11-0.175.1.0.0.19.0:20120625T152525Z
除了单个的组件软件包,您还可以对 incorporation 放宽版本约束。在这种情况下,将某个 incorporation 的 version-lock 侧面设置为 false 可以将其解锁,使其与系统的其余部分不同步,而其中合并的软件包则继续保持同步。