跳过导航链接 | |
退出打印视图 | |
![]() |
添加和更新 Oracle Solaris 11.1 软件包 Oracle Solaris 11.1 Information Library (简体中文) |
可使用 pkg freeze 命令限定软件包版本。需要冻结软件包的一种可能情况是:您不希望非全局区域中的软件包在全局区域更新时更新。
/usr/bin/pkg freeze [-n] [-c reason] [ pkg_fmri_pattern] ...
如果未在 pkg_fmri_pattern 中提供版本,则必须安装指定的软件包,并且版本限定为安装在系统上的版本。如果在 pkg_fmri_pattern 中提供了版本,则此约束或冻结的操作效果就像安装时指定了 incorporate 依赖性(其中 fmri 属性值为所提供的软件包版本)一样。
如果安装或更新冻结的软件包,则其最终版本必须与冻结时使用的版本匹配。例如,如果某个软件包在冻结时的版本为 1.2,则可以将它更新到 1.2.1、1.2.9、1.2.0.0.1,等等。但该软件包的最终版本不能为 1.3 或 1.1。
pkg_fmri_pattern 中指定的发布者用于查找匹配的软件包。但是,在冻结过程中不会记录发布者信息。软件包只针对其版本(而不是发布者)进行冻结。
冻结一个已经冻结的软件包会将冻结版本替换为新指定的版本。
如果未指定任何软件包,则会显示有关当前已冻结软件包的信息:软件包名称、版本、冻结时间以及任何相关原因。
冻结某个软件包不会阻止删除该软件包。删除软件包时不会显示警告。
可使用 -c 选项记录软件包被冻结的原因。当安装或更新因冻结而不能继续进行时,将会显示该原因。
可使用 -n 选项试运行冻结操作,显示要冻结的软件包的列表,但并不实际冻结任何软件包。
在以下示例中,软件包冻结在当前已安装的版本。软件包列表中的 “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 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-
当您尝试安装冻结软件包的其他版本时,您会看到一条关于冻结的消息。
$ pfexec 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 命令。
/usr/bin/pkg unfreeze [-n] [pkg_name_pattern] ...
从指定的软件包中删除冻结操作施加的约束。将会忽略提供的版本。
可使用 -n 选项试运行解冻操作,显示会要解冻的软件包的列表,但并不实际解冻任何软件包。