JavaScript is required to for searching.
跳过导航链接
退出打印视图
添加和更新 Oracle Solaris 11.1 软件包     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  映像包管理系统简介

2.  IPS 图形用户界面

3.  获取有关软件包的信息

4.  安装和更新软件包

预览操作

安装和更新软件包

引导环境选项

安装新软件包

将软件包安装到新的引导环境

拒绝软件包

更新软件包

修复软件包问题

验证软件包安装

修复验证错误

恢复文件

卸载软件包

使用非全局区域

在非全局区域中安装软件包

同时更新多个非全局区域

5.  配置已安装的映像

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

安装和更新软件包

pkg install 命令安装当前未安装的软件包,并更新已安装的软件包。pkg install 命令需要指定一个或多个软件包名称。

pkg update 命令更新已安装的软件包。如果在 pkg update 命令中指定尚未安装的软件包,系统不会安装该软件包。pkg update 命令接受零个或多个已安装软件包的名称。不指定软件包名称将更新已安装在映像中的所有软件包。

要了解在安装和更新期间将如何处理具有 preserve 和 overlay 属性的文件,请参见 pkg(1) 手册页中 file 操作的 preserveoverlay 属性。

引导环境选项

在安装、更新或卸载软件包的过程中,可能会创建一个新的 BE 或备份 BE。请注意,设置中介或取消对中介的设置,更改变量或侧面,或恢复文件,也可能会涉及软件包的安装、更新或卸载。在 BE 映像策略的约束范围内,您可以使用以下介绍的选项控制新 BE 和备份 BE 的创建。有关新 BE 和备份 BE 的信息以及如何设置 BE 映像策略的信息,请参见引导环境策略映像属性

可使用 BE 选项强制创建或不创建新 BE 或备份 BE,向 BE 提供定制名称和指定新 BE 不应激活。

--no-be-activate

如果创建了一个 BE,不将其设置为下次引导时的活动 BE。可使用 beadm(1M) 命令显示和更改活动的 BE。

--no-backup-be

不创建备份 BE。

--require-backup-be

在不创建新 BE 的情况下创建备份 BE。如果不使用该选项,则根据映像策略创建备份 BE。有关何时自动创建备份 BE 的说明,请参见引导环境策略映像属性

--backup-be-name name

如果创建备份 BE,则将其命名为 name,而不使用缺省名称。使用 --backup-be-name 意味着 --require-backup-be

--deny-new-be

不创建新的 BE。如果需要新的 BE,则不执行安装、更新、卸载和恢复操作。

--require-new-be

创建新 BE。如果不使用该选项,则根据映像策略创建 BE。有关何时自动创建 BE 的说明,请参见引导环境策略映像属性。该选项不能与 -require-backup-be 一起使用。

--be-name name

如果创建 BE,则将其命名为 name,而不使用缺省名称。使用 --be-name 意味着 --require-new-be

安装新软件包

安装某个软件包时,缺省情况下,从发布者搜索顺序中第一个提供该软件包的发布者安装与映像其余部分兼容的最新版本。要显式请求安装最新版本,请在软件包 FMRI 的版本部分使用 latest

如果该软件包已安装,则更新该软件包,即从提供当前安装版本的发布者安装与映像其余部分兼容的最新版本。

如果该映像启用了多个发布者,可以通过设置发布者粘滞性和搜索顺序或在软件包 FMRI 中指定发布者来控制软件包由哪个发布者提供。还可以在软件包 FMRI 中指定要安装的版本。有关软件包 FMRI 的说明,请参见故障管理资源标识符。有关设置发布者粘滞性和搜索顺序的信息,请参见配置发布者

/usr/bin/pkg install [-nvq] [-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_fmri_pattern 未指定发布者,则会将第一个提供匹配软件包的发布者用作安装源。如果该发布者未提供可以安装在此映像中的软件包版本,则安装操作将失败。使用 pkg list -a 命令可查看哪些发布者提供可以安装在此映像中的软件包版本。

以下命令显示可以从配置的发布者处获得软件包 atool 的可安装版本,但位于搜索顺序中第一位的发布者所提供的版本在此映像中不可安装。

$ pkg list -a atool
NAME (PUBLISHER)     VERSION    IFO
atool (isvpub)       2.0        ---
$ pkg list -af atool
NAME (PUBLISHER)     VERSION    IFO
atool                1.1        ---
atool (isvpub)       2.0        ---

这种情况下,以下安装命令将失败。包管理系统从位于搜索顺序第一位的发布者处找到与 pkg_fmri_pattern "atool" 匹配的软件包,但是无法安装此软件包。

$ pfexec pkg install atool

要安装此软件包,请使 pkg_fmri_pattern 更具体,如以下示例中所示:

$ pfexec pkg install //isvpub/atool
$ pfexec pkg install atool@2.0

在实际安装前,可使用 -nv 选项来查看将要安装的内容。

可使用 -g 选项暂时将指定的软件包系统信息库或软件包归档文件添加到从中检索软件包数据的映像的源列表。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。此选项不能用于存在子映像(非全局区域)的映像。如果此映像中安装了非全局区域,请使用 pkg set-publisher 命令来添加此发布者和源。可以多次指定此选项。

指定 -g 选项后,检索软件包时,将首选在此映像中启用的发布者。

在以下示例中,可从此映像中配置的 solaris 发布者处获得 btool。还可从系统信息库源为 http://pkg.example1.com/devtool 发布者处获得 btool 软件包,但此映像中未配置 devtool 发布者。以下命令尝试从 solaris 发布者安装软件包,因为当可从配置的发布者处获得软件包时,将首选此映像中配置的发布者,而不是 -g 源。

$ pfexec pkg install -g http://pkg.example1.com/ btool

要从 devtool 发布者安装软件包,请在 pkg_fmri_pattern 中指定发布者的名称。

$ pfexec pkg install -g http://pkg.example1.com/ //devtool/btool

在以下示例中,isvpub 是在此映像中配置的发布者,源为 /export/isvrepo isvpub 发布者还向位于 http://pkg.example2.com/ 的系统信息库发布软件包,但未向此映像中配置的发布者指定该源。以下命令尝试从 http://pkg.example2.com/ 位置安装软件包,因为同一发布者在两个位置均提供了该软件包。

$ pfexec pkg install -g http://pkg.example2.com/ atool

另请参见添加、修改或删除软件包发布者中的发布者粘滞性的说明。

可使用 -C 选项在 n 个非全局区域与全局区域中同时安装软件包。有关使用 -C 选项的示例,请参见同时更新多个非全局区域

可使用 --accept 选项表示同意并接受所更新或安装的软件包的许可证条款。如果不提供此选项,且任何软件包许可证都要求接受,则安装操作将失败。可使用 --licenses 选项显示此操作中将安装或更新的软件包的所有许可证。

指定 --no-index 选项时,操作成功完成后,不会更新搜索索引。如果是安装大量软件包,则指定该选项可以节省时间。完成所有 installupdateuninstall 操作后,可以使用 pkg refresh 来更新可用软件包的列表和每个指定发布者的发布者元数据。如果未指定任何发布者,则针对所有发布者执行刷新。

指定 -no-refresh 选项时,不会访问映像发布者的系统信息库检索可用软件包的最新列表和其他元数据。

在命令输出中,请注意任何指出已创建新引导环境的消息。如果已创建并激活新引导环境,在未指定 --no-be-activate 选项时,缺省情况下,下次重新引导时会引导该环境。

将软件包安装到新的引导环境


提示 - 显式指定新的 BE 是最安全的安装或更新方式。有关何时创建 BE 的信息,请参见引导环境策略映像属性


新的 BE 是当前 BE 的克隆,其应用了指定安装、卸载或更新更改。当前 BE 不作修改。系统不会自动重新启动。新的 BE 是下次重新启动系统时的缺省引导选项。当前 BE 仍可以引导。

如果指定 --no-be-activate 选项,则新的 BE 不是下次重新引导时的缺省引导选项。

可使用 --be-name 选项强制创建新的 BE,或为新的 BE 提供有意义的名称。

$ pfexec pkg install --be-name s11amp group/feature/amp
           Packages to install:   5
       Create boot environment: Yes
Create backup boot environment:  No

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                5/5       271/271    52.3/52.3    0B/s

PHASE                                          ITEMS
Installing new actions                       410/410
Updating package state database                 Done
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            5/5

A clone of s11_1 exists and has been updated and activated.
On the next boot the Boot Environment s11amp will be
mounted on '/'.  Reboot when ready to switch to this updated BE.

$ pkg list group/feature/amp
pkg list: no packages matching 'group/feature/amp' installed

pkg list 命令报告 group/feature/amp 软件包未安装,因为 group/feature/amp 软件包未安装在当前 BE 中。group/feature/amp 软件包安装在新的 s11amp BE 中。

使用 beadm list 命令可检查出系统具有名为 s11amp 的活动新 BE。当前已经引导了 “N” BE。“R” BE 是重新引导的缺省值。可使用 beadm activate 命令更改重新引导时的缺省 BE。

$ beadm list
BE           Active Mountpoint Space   Policy Created
--           ------ ---------- -----   ------ -------
s11amp       R      -          20.75G  static 2012-08-06 15:36
solaris      -      -          44.81M  static 2010-11-07 17:45
solaris11_1  N      /          30.04M  static 2012-07-25 17:10

检查 group/feature/amp 软件包是否已安装在新的 BE 中。I 列中的 "i" 表示 group/feature/amp 软件包已安装。

$ pfexec beadm mount s11amp /mnt
$ pkg -R /mnt list group/feature/amp
NAME (PUBLISHER)       VERSION                    IFO
group/feature/amp      0.5.11-0.175.1.0.0.21.0    i--

请注意取消挂载 s11amp BE。

$ beadm list
BE           Active Mountpoint Space   Policy Created
--           ------ ---------- -----   ------ -------
s11amp       R      /mnt       20.75G  static 2012-08-06 15:36
solaris      -      -          44.81M  static 2010-11-07 17:45
solaris11_1  N      /          30.05M  static 2012-07-25 17:10
$ pfexec beadm unmount s11amp

拒绝软件包

可使用 pkg install 命令的 --reject 选项来阻止安装名称与指定 pkg_fmri_pattern 匹配的软件包。如果已安装匹配的软件包,则在此操作过程会将其删除。作为组依赖性目标的被拒绝软件包将放置在避免列表中。有关避免列表的信息,请参见避免安装组软件包中的某些软件包

$ pfexec pkg install -nv --reject developer/versioning/cvs group/feature/developer-gnu

更新软件包

可以使用 installupdate 子命令,从提供当前安装版本的发布者将已安装的软件包更新为与映像其余部分兼容的最新版本。为了避免无意中安装尚未安装的软件包,请使用 pkg update 命令更新软件包。

如果该映像启用了多个发布者,可以通过设置发布者粘滞性和搜索顺序或在软件包 FMRI 中指定发布者来控制软件包由哪个发布者提供。还可以在软件包 FMRI 中指定要安装的版本。有关软件包 FMRI 的说明,请参见故障管理资源标识符。有关设置发布者粘滞性和搜索顺序的信息,请参见配置发布者

/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_fmri_pattern 的版本部分使用 latest

$ pfexec pkg update vim@latest

可以指定早于当前安装版本的软件包版本以执行就地降级。作为将要降级的软件包的一部分、自安装原始版本以来已更改的任何保留配置文件,将会使用扩展名 .update 进行重命名。有关软件包系统如何确定要保留的文件,以及在软件包升级期间如何保留这些文件的更多信息,请参见 pkg(5) 手册页中的“文件操作”。

可使用 -g 选项暂时将指定的软件包系统信息库或软件包归档文件添加到从中检索软件包数据的映像的源列表。有关 -g 选项的影响的其他说明和示例,请参见安装新软件包

可使用 -C 选项在 n 个非全局区域与全局区域中同时更新软件包。有关示例,请参见同时更新多个非全局区域

在命令输出中,请注意任何指出已创建新引导环境的消息。如果已创建并激活新引导环境,在未指定 --no-be-activate 选项时,缺省情况下,下次重新引导时会引导该环境。

可使用 --accept 选项表示同意并接受所更新的软件包的许可证条款。如果不提供此选项,且任何软件包许可证都要求接受,则更新操作将失败。可使用 --licenses 选项显示此操作中将更新的软件包的所有许可证。

指定 --no-index 选项时,操作成功完成后,不会更新搜索索引。如果是安装大量软件包,则指定该选项可以节省时间。完成所有 installupdateuninstall 操作后,可以使用 pkg refresh 来更新可用软件包的列表和每个指定发布者的发布者元数据。如果未指定任何发布者,则针对所有发布者执行刷新。

如果未指定 pkg-fmri,或者如果指定的 pkg-fmri 为星号字符 (*),则请参见更新映像,了解 pkg update 命令的特殊行为。