在 Oracle® Solaris 11.2 中添加和更新软件

退出打印视图

更新时间: 2014 年 7 月
 
 

将软件包锁定为指定版本

可使用 pkg freeze 命令限定软件包版本。

如果未在软件包操作数中提供版本,则必须安装指定的软件包,并且版本限定为安装在系统上的版本。如果在软件包操作数中提供了版本,则此约束或冻结的操作效果等同于安装了 incorporate 依赖项(其中 fmri 属性值为所提供的软件包版本)。

如果安装或更新冻结的软件包,则其最终版本必须与冻结时使用的版本匹配。例如,如果某个软件包在冻结时的版本为 1.2,则可以将它更新到 1.2.1、1.2.9、1.2.0.0.1,等等。但该软件包的最终版本不能为 1.3 或 1.1。

将使用在软件包操作数中指定的发布者来查找匹配的软件包。但是,在冻结过程中不会记录发布者信息。软件包只针对其版本(而不是发布者)进行冻结。

冻结一个已经冻结的软件包会将冻结版本替换为新指定的版本。

如果未指定软件包,则会显示以下有关当前已冻结软件包的信息:软件包名称、冻结版本、冻结时间以及冻结软件包的原因。

冻结某个软件包不会阻止删除该软件包。删除软件包时不会显示警告。

在以下示例中,软件包冻结在当前已安装的版本。-c 选项参数是软件包被冻结的原因。当安装或更新因冻结而不能继续进行时,将会显示该原因。软件包列表中的 “f” 指示软件包已冻结。

$ 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 freeze
NAME                     VERSION                                    DATE                     COMMENT
library/security/openssl 1.0.0.10-0.175.1.0.0.19.0:20120625T171753Z 29 Jul 2012 17:45:44 PDT Downgrade to
avoid bug
$ 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 update library/security/openssl@1.0.0.10-0.175.1.0.0.20.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.20.0:20120709T180243Z
  Reason:  This version is excluded by a freeze on library/security/openssl at version 
  1.0.0.10,5.11-0.175.1.0.0.18.0:20120611T201116Z.
  The reason for the freeze is: Downgrade to avoid bug

包管理系统永远不会自动解除冻结。可使用 pkg unfreeze 命令从指定的软件包中删除冻结操作施加的约束。将会忽略提供的版本。