安装某个软件包时,缺省情况下,从发布者搜索顺序中第一个提供该软件包的发布者安装与映像其余部分兼容的最新版本。要显式请求安装最新版本,请在软件包 FMRI 的版本部分使用 latest。
如果该软件包已安装,则更新该软件包,即从提供当前安装版本的发布者安装与映像其余部分兼容的最新版本。
指定了多个软件包时,如果指定的软件包中有任何一个无法在此映像中安装,则指定的所有软件包都不会安装。
如果某个软件包在避免列表中,则安装该软件包会将它从该列表中删除。有关避免列表的信息,请参见避免安装组软件包中的某些软件包。
如果该映像启用了多个发布者,可以通过设置发布者粘滞性和搜索顺序或在软件包 FMRI 中指定发布者来控制软件包由哪个发布者提供。还可以在软件包 FMRI 中指定要安装的版本。有关软件包 FMRI 的说明,请参见故障管理资源标识符。有关设置发布者粘滞性和搜索顺序的信息,请参见配置发布者。
如果软件包名称未指定发布者,则会将第一个提供匹配软件包的发布者用作安装源。如果该发布者未提供可以安装在此映像中的软件包版本,则安装操作将失败。使用 pkg list -a 命令可查看哪些发布者提供可以安装在此映像中的软件包版本。
以下命令显示可以从所配置的发布者处获得软件包 atool 的可安装版本,但位于搜索顺序中第一位的发布者所提供的版本在此映像中不可安装。有关 pkg list 命令的选项的信息,请参见显示软件包安装状态信息。
$ 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 ---
这种情况下,以下安装命令将失败。包管理系统从位于搜索顺序第一位的发布者那里找到了其名称与 atool 匹配的软件包,但是无法安装此软件包。
$ pkg install atool
要安装此软件包,请使用更具体的软件包名称,如以下示例中所示:
$ pkg install //isvpub/atool $ pkg install atool@2.0
在实际安装前,可使用 -nv 选项来查看将要安装的内容。如果收到错误信息,请参见Appendix A, 软件包安装和更新故障排除以获取帮助。
可使用 -g 选项暂时将指定的软件包系统信息库或软件包归档文件添加到从中检索软件包数据的映像的源列表。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。此选项不能用于存在子映像(非全局区域)的映像。如果此映像中安装了非全局区域,请使用 pkg set-publisher 命令来添加此发布者和源。可以多次指定此选项。
指定 -g 选项后,检索软件包时,将首选使用在此映像中启用的发布者。
如果在映像中启用的发布者可提供与指定软件包名称或软件包名称模式匹配的软件包,且如果在 -g 选项指定的位置未找到相同的发布者,则包管理系统尝试安装此映像中启用的发布者提供的软件包。执行 install 或 update 后,未在映像中配置的发布者提供的所有软件包将添加到映像配置中,且添加的软件包没有源。
如果在映像中启用的发布者可提供与指定软件包名称或软件包名称模式匹配的软件包,且如果同一发布者在由 -g 选项指定的位置发布了软件包,则包管理系统将尝试从 -g 选项指定的位置安装该软件包。
在以下示例中,可从此映像中配置的 solaris 发布者处获得 btool。还可从系统信息库源为 http://pkg.example1.com/ 的 devtool 发布者处获得 btool 软件包,但此映像中未配置 devtool 发布者。该命令尝试从 solaris 发布者安装软件包,因为当可从所配置的发布者处获得软件包时,将首选此映像中配置的发布者,而不是 -g 源。
$ pkg install -g http://pkg.example1.com/ btool
要安装来自于 devtool 发布者的软件包,请在软件包名称中指定发布者的名称。
$ pkg install -g http://pkg.example1.com/ //devtool/btool
在以下示例中,isvpub 是在此映像中配置的发布者,源为 /export/IPSpkgrepos/isvrepo。isvpub 发布者还向位于 http://pkg.example2.com/ 的系统信息库发布软件包,但未向此映像中配置的发布者指定该源。以下命令尝试安装来自 http://pkg.example2.com/ 位置的软件包,因为同一发布者在两个位置均提供了该软件包。
$ pkg install -g http://pkg.example2.com/ atool
另请参见添加、修改或删除软件包发布者中的发布者粘滞性的说明。