跳过导航链接 | |
退出打印视图 | |
添加和更新 Oracle Solaris 11.1 软件包 Oracle Solaris 11.1 Information Library (简体中文) |
在未指定 pkg-fmri,或以星号 (*) 作为 pkg-fmri 的情况下使用 pkg update 命令将更新具有可用更新的所有已安装软件包,将其更新到已安装软件包相关项和发布者配置对系统施加的约束所允许的最新版本。如果在当前映像中挂载了非全局区域,也会更新这些区域。请参见同时更新多个非全局区域。
/usr/bin/pkg update [-fnvq] [-C n] [-g path_or_uri ...] [--accept] [--licenses] [--no-index] [--no-refresh] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] [--reject pkg_fmri_pattern ...] [pkg_fmri_pattern ...]
在使用 pkg update 命令之前,请检查可从已配置的发布者源获取的版本,并使用 -nv 选项显示将被更新的软件包列表,而不实际不执行更新。
如果您希望更新操作系统发行版,请检查 entire incorporation 软件包的可用版本。以下命令显示已安装 Oracle Solaris 11 11/11 SRU 10,可获取 Oracle Solaris 11 11/11 SRU 11、12 和 13,且可从当前配置的 solaris 发布者获取 Oracle Solaris 11.1。有关 FMRI 中字段的信息,请参见故障管理资源标识符。
$ pkg list -af entire NAME (PUBLISHER) VERSION IFO entire 0.5.11,5.11-0.175.1.0.0.24.2 --- entire 0.5.11,5.11-0.175.0.13.0.4.0 --- entire 0.5.11,5.11-0.175.0.12.0.4.0 --- entire 0.5.11,5.11-0.175.0.11.0.4.1 --- entire 0.5.11,5.11-0.175.0.10.0.5.0 i--
如果这些版本中没有您所需的版本,则需要将您的 solaris 发布者源设置为其他软件包系统信息库位置。
缺省情况下,每个软件包都通过提供当前安装版本的发布者来更新。通过指定发布者粘滞性和搜索顺序,您可以控制提供软件包的发布者。请参见添加、修改或删除软件包发布者。
以下命令显示更新实际将安装的软件包(如果有)。由于指定了 -v 选项,因此该命令将显示下列软件包的完整 FMRI(包括版本):所有 627 个将更新的软件包,三个将删除的软件包和一个将安装的新软件包。此示例省略了该输出中的大部分内容,仅显示 entire 软件包。由于指定了 -n 选项,因此不实际执行更新。请在不带 -n 选项执行更新之前查看此输出。
$ pfexec pkg update -nv Packages to remove: 3 Packages to install: 1 Packages to update: 627 Estimated space available: 48.43 GB Estimated space to be consumed: 3.14 GB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: Yes Changed packages: solaris ... entire 0.5.11,5.11-0.175.0.10.0.5.0:20120803T182627Z -> 0.5.11,5.11-0.175.1.0.0.24.2:20120919T190135Z ...
上述示例显示将安装适用于 Oracle Solaris 11.1 的 entire incorporation 软件包。将相应地更新属于 entire incorporation 的所有已安装的软件包。由于未指定软件包 FMRI,因此也将更新不属于 entire incorporation 的任何已安装的软件包。所有已安装的软件包将更新到最新版本,该版本需要得到已安装的软件包相关项和发布者配置对系统施加的约束的允许。当更新的已安装软件包指定了新的相关项时,可以删除已安装的软件包,并可以安装新的软件包。
上述示例显示如果您在不使用 -n 选项的情况下重新运行此命令,将为此更新创建新的 BE。如果您在不使用 -n 选项的情况下运行此命令,将在更新输出的结尾部分看到以下消息:
A clone of currentBE exists and has been updated and activated. On the next boot the Boot Environment newBE will be mounted on '/'. Reboot when ready to switch to this updated BE.
当前 BE 不作修改。所有更改都在新的 BE 中执行。
显式指定新的 BE 是最安全的安装或更新方式。有关何时创建 BE 的信息,请参见引导环境策略映像属性。您可能希望使用 --be-name 选项来为新的 BE 提供一个有意义的名称。新的 BE 已激活,因此,下次引导系统时缺省情况下将引导此新环境。如果您不希望如此,请在 pkg update 命令中使用 --no-be-activate 选项。然后,当您准备使用新环境时,使用 beadm activate 命令来激活该新的 BE。
如果不希望更新到允许的最新版本,您可以在 pkg update 命令中指定软件包名称,包括版本字符串的一部分。以下示例显示如何指定 entire incorporation 的版本以更新至 Oracle Solaris 11 11/11 SRU 13(即使允许更高的版本)。请确保再次使用 -nv 选项并再次检查输出。
$ pfexec pkg update -nv entire@0.5.11,5.11-0.175.0.13 Packages to remove: 2 Packages to install: 1 Packages to update: 486 Estimated space available: 48.39 GB Estimated space to be consumed: 2.50 GB Create boot environment: Yes Activate boot environment: Yes Create backup boot environment: No Rebuild boot archive: Yes Changed packages: solaris ... entire 0.5.11,5.11-0.175.0.10.0.5.0:20120803T182627Z -> 0.5.11,5.11-0.175.0.13.0.4.0:20121106T194623Z ...
某些已安装的软件包可能不属于 entire incorporation。这些软件包可能已单独安装,它们将无法通过仅更新 entire incorporation 来进行更新。可以将这些软件包添加到同一个 pkg update 命令。
如果希望允许更新到任何 Oracle Solaris 11 11/11 版本,但不允许更新到 Oracle Solaris 11.1,您可以冻结 entire incorporation,如以下命令中所示。例如,指定 0.175.0 表示 entire 软件包可以更新到 0.175.0.13,但不能更新到 0.175.1。
$ pfexec pkg freeze -c "Keep this image at 11 11/11." entire@0.5.11,5.11-0.175.0 entire was frozen at 0.5.11,5.11-0.175.0 $ pkg freeze NAME VERSION DATE COMMENT entire 0.5.11,5.11-0.175.0 30 Jan 2013 15:50:01 PST Keep this image at 11 11/11. $ pkg list entire NAME (PUBLISHER) VERSION IFO entire 0.5.11,5.11-0.175.0.10.0.5.0 if-
有关软件包冻结的更多信息,请参见将软件包锁定为指定版本。
控制可安装或可更新的版本的另一个方法是提供您自己的本地 IPS 软件包系统信息库并控制该系统信息库的内容。例如,您的系统信息库可包含适用于 Oracle Solaris 11 11/11 的所有支持更新,但不包含 Oracle Solaris 11.1 软件包。
如果您创建自己的系统信息库,请确保更新 solaris 发布者源。
有关更多信息,请参见《复制和创建 Oracle Solaris 11.1 软件包系统信息库》。
要将您的操作系统发行版降级,请引导到早于您要降级到的 BE 版本,然后从此版本升级。例如,如果已从 Oracle Solaris 11 11/11 SRU 10 更新到 Oracle Solaris 11 11/11 SRU 13,然后发现您需要 SRU 12 映像,则重新引导至 SRU 10 BE,再从其更新到 SRU 12。
如果在更新所有已安装软件包时指定 -f 选项,则不会执行客户机最新状态检查。
可使用 -g 选项暂时将指定的软件包系统信息库或软件包归档文件添加到从中检索软件包数据的映像的源列表。有关 -g 选项的影响的其他说明和示例,请参见安装新软件包。
可使用 -C 选项同时更新 n 个非全局区域与全局区域。有关示例,请参见同时更新多个非全局区域。
可使用 --accept 选项表示同意并接受所更新的软件包的许可证条款。如果不提供此选项,且任何软件包许可证都要求接受,则更新操作将失败。可使用 --licenses 选项显示此操作中将更新的软件包的所有许可证。
指定 -no-refresh 选项时,不会访问映像发布者的系统信息库检索可用软件包的最新列表和其他元数据。
指定 --no-index 选项时,操作成功完成后,不会更新搜索索引。如果是安装大量软件包,则指定该选项可以节省时间。更新操作完成后,可以使用 pkg refresh 为指定的每个发布者更新可用软件包的列表和发布者元数据。如果未指定任何发布者,则针对所有发布者执行刷新。如果创建了新的 BE,将在新的 BE 中执行该发布者刷新。