/usr/bin/pkg [options] command [ cmd_options] [operands]
/usr/bin/pkg refresh [-q] [--full] [publisher ...]
/usr/bin/pkg install [-nvq] [-C n] [-g path_or_uri]... [-r [[-z zonename]... | [-Z zonename]... ]] [--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]... [--sync-actuators | --sync-actuators-timeout timeout] pkg_fmri_pattern ...
/usr/bin/pkg exact-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 ...
/usr/bin/pkg uninstall [-nvq] [-C n] [-r [[-z zonename]... | [-Z zonename]... ]] [--ignore-missing] [--no-index] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] [--sync-actuators | --sync-actuators-timeout timeout] pkg_fmri_pattern ...
/usr/bin/pkg update [-fnvq] [-C n] [-g path_or_uri]... [-r [[-z zonename]... | [-Z zonename]... ]] [--accept] [--ignore-missing] [--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]... [--sync-actuators | --sync-actuators-timeout timeout] [pkg_fmri_pattern ...]
/usr/bin/pkg list [-Hafnqsuv] [-g path_or_uri]... [--no-refresh] [pkg_fmri_pattern ...]
/usr/bin/pkg info [-lqr] [-g path_or_uri]... [--license] [pkg_fmri_pattern ...]
/usr/bin/pkg contents [-Hmr] [-a attribute=pattern]... [-g path_or_uri]... [-o attribute[,attribute]...]... [-s sort_key] [-t action_name[,action_name]...]... [pkg_fmri_pattern ...]
/usr/bin/pkg search [-HIaflpr] [-o attribute[,attribute]...]... [-s repo_uri] query
/usr/bin/pkg verify [-Hqv] [pkg_fmri_pattern ...]
/usr/bin/pkg fix [--accept] [--licenses] [pkg_fmri_pattern ...]
/usr/bin/pkg revert [-nv] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] (--tagged tag-name ... | path-to-file ...)
/usr/bin/pkg mediator [-aH] [-F format] [mediator ...]
usr/bin/pkg set-mediator [-nv] [-I implementation] [-V version] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] mediator ...
/usr/bin/pkg unset-mediator [-nvIV] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] mediator ...
/usr/bin/pkg variant [-Haiv] [-F format] [variant_pattern ...]
/usr/bin/pkg change-variant [-nvq] [-C n] [-g path_or_uri]... [-r [[-z zonename]... | [-Z zonename]... ]] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] [--sync-actuators | --sync-actuators-timeout timeout] variant_name=value ...
/usr/bin/pkg facet [-Haim] [-F format] [facet_pattern ...]
/usr/bin/pkg change-facet [-nvq] [-C n] [-g path_or_uri]... [-r [[-z zonename]... | [-Z zonename]... ]] [--accept] [--licenses] [--no-be-activate] [--no-backup-be | --require-backup-be] [--backup-be-name name] [--deny-new-be | --require-new-be] [--be-name name] [--sync-actuators | --sync-actuators-timeout timeout] facet_name=(True|False|None) ...
/usr/bin/pkg avoid [pkg_fmri_pattern ...]
/usr/bin/pkg unavoid [pkg_fmri_pattern ...]
/usr/bin/pkg freeze [-n] [-c reason] [pkg_fmri_pattern ...]
/usr/bin/pkg unfreeze [-n] [pkg_name_pattern ...]
/usr/bin/pkg property [-H] [propname ...]
/usr/bin/pkg set-property propname propvalue
/usr/bin/pkg add-property-value propname propvalue
/usr/bin/pkg remove-property-value propname propvalue
/usr/bin/pkg unset-property propname ...
/usr/bin/pkg publisher [-HPn] [-F format] [publisher ...]
/usr/bin/pkg set-publisher [-Ped] [-c ssl_cert] [-k ssl_key] [-g origin_to_add | --add-origin origin_to_add]... [-G origin_to_remove | --remove-origin origin_to_remove]... [-m mirror_to_add | --add-mirror mirror_to_add]... [-M mirror_to_remove | --remove-mirror mirror_to_remove]... [--disable] [--enable] [--no-refresh] [--reset-uuid] [--non-sticky] [--sticky] [--search-after publisher] [--search-before publisher] [--search-first] [--approve-ca-cert path_to_CA] [--revoke-ca-cert hash_of_CA_to_remove] [--unset-ca-cert hash_of_CA_to_remove] [--set-property name_of_property=value] [--add-property-value name_of_property=value_to_add] [--remove-property-value name_of_property=value_to_remove] [--unset-property name_of_property_to_delete] [--proxy proxy_to_use] publisher
/usr/bin/pkg set-publisher -p repo_uri [-Ped] [-c ssl_cert] [-k ssl_key] [--non-sticky] [--sticky] [--search-after publisher] [--search-before publisher] [--search-first] [--approve-ca-cert path_to_CA] [--revoke-ca-cert hash_of_CA_to_remove] [--unset-ca-cert hash_of_CA_to_remove] [--set-property name_of_property=value] [--add-property-value name_of_property=value_to_add] [--remove-property-value name_of_property=value_to_remove] [--unset-property name_of_property_to_delete] [--proxy proxy_to_use] [publisher]
/usr/bin/pkg unset-publisher publisher ...
/usr/bin/pkg history [-HNl] [-n number] [-o column[,column]...]... [-t time | time-time[,time | time-time]...]...
/usr/bin/pkg purge-history
/usr/bin/pkg rebuild-index
/usr/bin/pkg update-format
/usr/bin/pkg version
/usr/bin/pkg help
/usr/bin/pkg image-create [-FPUfz] [--force] [--full | --partial | --user] [--zone] [-c ssl_cert] [-k ssl_key] [-g path_or_uri | --origin path_or_uri]... [-m uri | --mirror uri]... [--facet facet_name=(True|False)]... [--no-refresh] [--set-property name_of_property=value] [--variant variant_name=value]... [(-p | --publisher) [name=]repo_uri] dir
pkg 是映像包管理系统的检索客户端。在有效配置下,可以调用 pkg 来为要安装的软件包创建位置(称为“映像”),然后将软件包安装到这些映像中。软件包由发布者发布。发布者可使其软件包在一个或多个系统信息库上可用,或者在软件包归档文件中可用。pkg 从发布者的系统信息库或软件包归档文件中检索软件包,然后将软件包安装到映像中。
只能将软件包安装到属于 BE 的文件系统中。例如,在缺省的 Oracle Solaris 11 安装上,软件包操作仅支持 rpool/ROOT/BEname/ 下的数据集。
发布者名称将个人、个人组或组织标识为一个或多个软件包的源。为避免发布者名称冲突并有帮于标识发布者,最佳做法是使用代表发布软件包实体的域名作为发布者名称。
系统信息库是客户端可在其中发布和检索软件包内容(该软件包包含的文件,例如程序和文档)和元数据(有关该软件包的信息,例如其名称和描述)的位置。例如,有一个名为 example.org 的发布者,其系统信息库位于 URI http://example.org/repository。
pkg 还可以卸载软件包、刷新发布者元数据(例如可用软件包的列表)、验证映像中的软件包安装,以及查询映像中的各个标记。也可以对 pkg(5) 系统信息库执行这些查询。
映像有三种类型:完整映像:能够提供完整的系统;部分映像:与完整映像(父映像)链接,但本身无法提供完整的系统;用户映像。
支持以下选项:
显示用法消息。
对根目录为 dir 的映像进行操作。如果未根据环境指定或确定目录,则缺省值为 /。有关更多信息,请参见“环境变量”部分。
支持以下子命令:
对于所有发布者,更新客户机可用软件包列表和发布者元数据。
仅对指定的发布者,更新客户机可用软件包列表和发布者元数据。
在执行请求的操作期间隐藏进度消息。
强制完全检索所有发布者元数据(而不是尝试增量更新),并请求操作期间使用的所有代理忽略高速缓存的数据。此选项用于进行故障排除,正常情况下不应使用。
安装指定软件包并将其更新到最新版本,该版本与映像中安装的软件包所允许的 pkg_fmri_pattern 匹配。要显式请求安装软件包的最新版本,请在 pkg_fmri_pattern 的版本部分使用 latest。例如,指定 vim@latest。pkg_fmri_pattern 模式可以包含 ? 和 * 字符作为 glob(3C) 式通配符,以匹配一个或多个软件包。
软件包基于发布者搜索顺序和粘性进行选择。有关搜索顺序和粘性的信息,请参见 pkg publisher 和 pkg set-publisher 命令。如果 pkg_fmri_pattern 未指定发布者,则会将第一个提供匹配软件包的发布者用作安装源。如果该发布者未提供可以安装在此映像中的软件包版本,则安装操作将失败。使用 pkg list -a 命令可查看哪些发布者提供可以安装在此映像中的软件包版本。
指定了多个 pkg_fmri_pattern 时,如果指定的软件包中有任何一个无法在此映像中安装,则指定的所有软件包都不会安装。
安装过程中,某些配置文件可能被重命名或替换。有关软件包系统如何确定要保留的文件以及在软件包操作期间如何保留这些文件的更多信息,请参见 pkg(5) 手册页中的“文件操作”。
如果某个软件包在避免列表中,则安装该软件包会将它从该列表中删除。
指定要并行更新的子映像数。在递归检查子映像(通常为安装的 solaris 标记非全局区域)时,最多可以并行更新 n 个子映像。并行更新的缺省子映像数为 1。如果 n 为 0 或负数,则并行更新所有子映像。另请参见“环境变量”部分中的 PKG_CONCURRENCY。
暂时将指定的软件包系统信息库或归档文件添加到从中检索软件包数据的映像的源列表内。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。可以多次指定此选项。
确定要使用的软件包版本时,优先选择映像中配置的发布者,而非指定 path_or_uri 源中找到的发布者。如果映像中配置的发布者和 path_or_uri 源都提供要安装的软件包版本,则客户机将从 path_or_uri 源中检索该软件包的内容。安装或更新后,未在映像中配置的发布者提供的所有软件包都将添加到映像配置中,但添加的这些软件包没有源。使用 pkg publisher 命令可查看在映像中配置的发布者。
试运行操作而不进行软件包更改。
在执行请求的操作期间隐藏进度消息。
在全局区域以及所有安装的 solaris 标记非全局区域中运行此操作。对非全局区域的效果与登录每个非全局区域并直接运行该命令类似。如果不指定此选项,则在全局区域中运行 pkg 命令时,仅在使非全局区域与全局区域保持兼容所需的程度上对非全局区域进行修改。如果指定此选项,则除了受 –z 和 –Z 选项限制外,pkg 操作将应用于所有安装的非全局区域。对于 –z 和 –Z 选项排除的区域,如果需要进行更新以保持其与全局区域同步,则仍可以对其进行修改。
仅在指定的非全局区域中运行此操作。可以多次指定 –z 选项。–z 选项只能与 –r 选项一起使用。–z 选项不能与 –Z 选项一起使用。
在除指定区域外的所有非全局区域中运行此操作。可以多次指定 –Z 选项。–Z 选项只能与 –r 选项一起使用。–Z 选项不能与 –z 选项一起使用。
在执行请求的操作期间发出详细进度消息,并显示详细的规划信息(例如更改侧面、中介和变量)。可以多次指定此选项,以增加显示的规划信息量。
表示同意并接受所更新或安装的软件包的许可证条款。如果存在任何需要您接受的软件包许可证,而您未提供此选项,则安装操作将失败。
显示在此操作过程中所安装或更新的软件包的所有许可证。对于更新的软件包,仅当许可证已更改时才显示许可证。
不在操作成功完成后更新搜索索引。
不尝试联系映像发布者的系统信息库来检索最新的可用软件包列表和其他元数据。
如果创建了一个引导环境,不将其设置为下次引导时的活动引导环境。有关更多信息,请参见 beadm(1M) 手册页。
不创建备份引导环境。
如果不创建新的引导环境,则始终创建一个备份引导环境。如果不使用该选项,则根据映像策略创建备份引导环境。有关何时自动创建备份引导环境的说明,请参见下文“映像属性”中的 be-policy。
使用给定参数命名创建的备份引导环境。使用 –-backup-be-name 表示 –-require-backup-be。另请参见 beadm(1M) 手册页。
不创建新的引导环境。如果需要新的引导环境,则不执行此操作。
始终创建新的引导环境。如果不使用该选项,则根据映像策略创建引导环境。有关何时自动创建引导环境的说明,请参见下文“映像属性”中的 be-policy。该选项不能与 –require-backup-be 一起使用。
将新创建的引导环境重命名为给定的参数。使用 –-be-name 表示 –-require-new-be。另请参见 beadm(1M) 手册页。
阻止安装名称与给定模式匹配的软件包。如果已安装匹配的软件包,则在此操作过程会将其删除。作为组依赖性目标的被拒绝软件包将放置在避免列表中。可以多次指定此选项。
同步运行 SMF 执行器。除非所有 SMF 执行器在调用了 pkg 的区域(全局区域或非全局区域)中已完成,否则 pkg(1) 命令不会返回。
同步运行 SMF 执行器。如果执行器未在给定的 timeout(以秒为单位)内完成,pkg(1) 将继续运行并以返回代码 8 退出。
像在裸系统中安装一样安装或更新指定的软件包。将删除未在命令行中指定且不是指定软件包的依赖项的所有之前安装的软件包。此命令将忽略不安装避免列表上的软件包以及不更新冻结列表上的软件包的限制。在其他方面,此 exact-install 子命令的行为与 install 子命令的行为相同。要显式请求安装软件包的最新版本,请在 pkg_fmri_pattern 的版本部分使用 latest。例如,指定 vim@latest。
软件包基于发布者搜索顺序和粘性进行选择。有关搜索顺序和粘性的信息,请参见 pkg publisher 和 pkg set-publisher 命令。如果 pkg_fmri_pattern 未指定发布者,则会将第一个提供匹配软件包的发布者用作安装源。如果该发布者未提供可以安装在此映像中的软件包版本,则安装操作将失败。使用 pkg list -a 命令可查看哪些发布者提供可以安装在此映像中的软件包版本。
指定了多个 pkg_fmri_pattern 时,如果指定的软件包中有任何一个无法在此映像中安装,则指定的所有软件包都不会安装。
安装过程中,某些配置文件可能被重命名或替换。有关软件包系统如何确定要保留的文件以及在软件包操作期间如何保留这些文件的更多信息,请参见 pkg(5) 手册页中的“文件操作”。
如果某个软件包在避免列表中,则安装该软件包会将它从该列表中删除。
有关选项的说明,请参见上述 install 命令。
删除与 pkg_fmri_pattern 匹配的已安装软件包。
如果某个软件包是组依赖性的主体,则卸载该软件包会将它放置在避免列表中。请参见下文的 avoid 子命令。
在命令输出中,请注意任何指出已创建新引导环境的消息。如果已创建并激活新引导环境,缺省情况下,下次重新引导时会引导该环境。有关管理引导环境的信息,请参见 beadm(1M) 手册页。
忽略未安装的软件包。使用此选项可防止 pkg uninstall 在尝试卸载当前未安装的软件包时失败。
对于其他所有选项,请参见上面的 install 命令。
将当前映像中安装的所有软件包更新到最新版本,该版本需符合已安装的软件包和发布者配置对系统施加的约束。
在命令输出中,请注意任何指出已创建新引导环境的消息。如果已创建并激活新引导环境,在未指定 –-no-be-activate 选项时,缺省情况下,下次重新引导时会引导该环境。有关管理引导环境的信息,请参见 beadm(1M) 手册页。
仅更新当前映像中安装的指定软件包。如果在所提供的 pkg_fmri_pattern 模式中有一个为星号 (*),则会更新当前映像中安装的所有软件包,就像未提供 pkg_fmri_pattern 一样。
要显式请求安装软件包的最新版本,请在 pkg_fmri_pattern 的版本部分使用 latest。例如,指定 vim@latest。
可以指定比已安装版本更高或更低的版本,以便对特定软件包执行就地降级或升级。不支持跨越软件包重命名边界或过时边界更新特定的软件包。
作为将要降级的软件包的一部分、自原始版本安装以来更改了的任何保留配置文件,将使用扩展名 .update 进行重命名。有关软件包系统如何确定要保留的文件,以及在软件包升级期间如何保留这些文件的更多信息,请参见 pkg(5) 手册页中的“文件操作”。
指定了多个 pkg_fmri_pattern 时,如果指定的软件包中有任何一个无法在此映像中更新,则指定的所有软件包都不会更新。
不在更新已安装的所有软件包时执行客户机最新状态检查。
忽略未安装的软件包。使用此选项可防止 pkg update 在尝试更新当前未安装的软件包时失败。
对于其他所有选项,请参见上面的 install 命令。
显示当前映像中安装的所有软件包的列表,包括版本和安装状态等信息。缺省情况下,会排除不同体系结构或区域类型的软件包变量。输出通常包括三个列:
NAME (PUBLISHER) VERSION IFO system/core-os 0.5.11-0.175.0.0.0.2.1 i-- x11/wm/fvwm (fvwm.org) 2.6.5 i--
第一列包含软件包的名称。如果安装(或者提供)该软件包的发布者在发布者搜索顺序上不是第一个,则该发布者名称将列在软件包名称的后面,并括在括号中。第二列包含软件包的发行版本和分支版本。有关发行版本和分支版本以及变量的信息,请参见 pkg(5) 手册页。
最后一列包含一组标志,用于显示软件包的状态:
I 列中的 i 表明软件包已安装。
F 列中的 f 表明软件包已冻结。
O 列中的 o 表明软件包已过时。O 列中的 r 表明软件包已重命名(一种形式的过时)。
仅列出指定的软件包。
在列出时省略标题。
列出已安装的软件包并列出未安装但可以安装在此映像中的最新版本的软件包。如果软件包得到已安装的 incorporation 和映像变体的允许,则可以安装软件包。如果指定了一个或多个模式,则会列出与指定模式匹配的、得到任何已安装的 incorporation 和映像变体允许的最新版本。如果不使用 –a,则仅列出已安装的软件包。
列出所有变量的所有软件包的所有版本,而不管 incorporation 约束或安装状态如何。使用这些选项时,要显式列出某个软件包的最新版本,请在 pkg_fmri_pattern 的版本部分使用 latest。例如,指定 vim@latest。
使用指定的软件包系统信息库或归档文件作为操作的软件包数据源。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。可以多次指定此选项。如果未指定 –n,则可使用 –g 表示 –a。
显示所有已知软件包的最新版本,而不管安装状态如何。
发生致命错误时不列出任何软件包,而是返回失败。
显示单行短格式,用于提供软件包名称和摘要。此选项可与 –a、–n 或 –u 一起使用。
列出具有更新可用版本的已安装软件包。此选项不能与 –g 一起使用。
在第一列中显示完整的软件包 FMRI,包括发布者和完整版本(VERSION 列将消失)。此选项可与 –a、–n 或 –u 一起使用。
不尝试联系映像发布者的系统信息库来检索最新的可用软件包列表。
以用户可读的格式显示当前映像中安装的所有软件包的相关信息。
仅显示指定软件包的相关信息。
使用指定的软件包系统信息库或归档文件作为操作的软件包数据源。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。可以多次指定此选项。使用 –g 表示 –r。
仅显示已安装的软件包的相关信息。这是缺省值。
发生致命错误时不显示任何软件包信息,而是返回失败。
根据最新的可用版本匹配软件包,并从包含映像中已配置发布者的系统信息库中检索当前未安装的软件包的相关信息(如有必要)。使用此选项时,必须至少指定一个软件包。如果不指定 –r,则缺省情况下仅显示已安装的软件包。
显示软件包的许可证文本。此选项可与 –l、–q 或 –r 结合使用。如果所有 pkg_fmri_pattern 模式都匹配已知软件包并具有许可证,则返回成功。如果一个或多个模式是不匹配的或者与没有许可证的软件包匹配,则返回失败。
显示映像中安装的所有软件包的内容(操作属性)。未指定选项时,显示当前映像中安装的操作的 path 属性值,按属性值的字母顺序排列。有关操作及其属性的信息,请参见 pkg(5) 手册页中的“操作”。另请参见以下伪属性名称列表。
仅显示指定软件包的内容。
在输出中省略标题。
将输出限制为以下操作:其在选项参数中命名了 attribute 并具有与选项参数中的 (glob) pattern 匹配的值。可以多次指定此选项。如果指定了多个 –a 选项,则会显示与其中任一选项匹配的操作。
显示指定软件包系统信息库或归档文件中可以安装在此映像中的软件包的信息。需要客户机 SSL 证书的系统信息库不能与此选项一起使用。可以安装的软件包包含当前已安装的软件包以及其他满足此映像安装条件(例如变量和侧面限制)的软件包。可以多次指定此选项。使用 –g 表示 –r。
显示指定软件包中所有操作的所有属性,包括无法安装在此映像中的操作。
显示指定属性,按列出的第一个属性的值排序。可以多次指定 –o 选项;也可以通过使用逗号分隔属性名称,将多个属性指定为一个 –o 选项的参数。仅显示包含所请求属性的操作。
显示此映像中配置的发布者系统信息库中可以安装在此映像中的软件包的最新可用版本信息。可以安装的软件包包含当前已安装的软件包以及其他满足此映像安装条件(例如变量和侧面限制)的软件包。使用此选项时,必须至少指定一个软件包。
按指定的操作属性对操作进行排序。如果未提供此选项,则缺省设置是按照路径进行排序或者按照 –o 选项指定的第一个属性进行排序。可以多次指定 –s 选项。
仅列出指定的操作。可以多次指定 –t 选项;也可以通过使用逗号分隔操作名称,将多个操作指定为一个 –t 选项的参数。action_name 的值是 pkg(5) 手册页的“操作”中列出的操作之一,例如 file、directory、driver、depend、set。
为方便起见,可以使用多个特殊的伪属性名称:
操作的散列值(如果该操作承载了有效负荷)。
该操作的关键属性值。例如,对于 file 操作,关键属性是文件的路径。某些操作不具备关键属性。
操作的名称。例如,对于某个文件操作,这是 file。
匹配操作的所有属性。
包含操作的软件包的完整 FMRI,例如 pkg://solaris/group/feature/amp@0.5.11,5.11-0.175.0.0.0.2.1:20120705T153434Z。
包含操作的软件包的名称,例如 web/amp。
包含操作的软件包的发布者,例如 solaris。
包含操作的软件包的短格式 FMRI,例如 pkg://solaris/group/feature/amp@0.5.11,5.11-0.175。
contents 和 search 子命令是彼此相关的:两者都可在系统中查询软件包的内容。contents 子命令显示一个或多个已安装或可安装软件包中的操作,根据指定的选项过滤输出。search 子命令从另一个方向处理查询,显示包含用户提供的标记的所有软件包的名称。
每个子命令都能够表达另一个子命令也能表达的某些查询。应该谨慎选择所需的子命令,因为使用其中一个子命令来表达某个给定查询,可能比使用另一个子命令更为自然。
搜索匹配 query 的操作,并显示匹配的搜索索引、操作名称、操作值和软件包名称。请参见下文的 query 说明。某些搜索可能会产生重复结果。
在输出中省略标题。
使用区分大小写的搜索。
执行搜索并显示有关匹配操作的信息。这是缺省值。
显示所有结果,而不考虑软件包版本。缺省情况下,search 会删改低于当前安装版本的软件包中的结果,以及当前 incorporation 排除的软件包版本中的结果。
搜索映像的已安装软件包。
可以同时指定 –l 和 –r(或 –s),在此情况下,将会同时执行本地搜索和远程搜索。
指定要在输出中包含的列。可以多次指定 –o 选项;也可以通过使用逗号分隔属性名称,将多个属性指定为一个 –o 选项的参数。除了上面概述的伪属性外,还为搜索结果定义了下列属性。这些属性有助于说明匹配特定结果的原因:
与搜索查询匹配的字符串。
包含与搜索查询匹配的字符串的属性。
显示其某些操作与每个查询词匹配的软件包。使用此选项相当于在查询中的每个词两侧添加尖括号 (<>)。有关 <> 运算符的更多说明,请参见下文的 query。
搜索对应于映像发布者的系统信息库。这是缺省值。
可以同时指定 –l 和 –r(或 –s),在此情况下,将会同时执行本地搜索和远程搜索。
搜索位于给定 URI 的 pkg(5) 系统信息库。可以多次指定此选项。不支持软件包归档。
缺省情况下,会将 query 解释为要精确匹配的一系列条件(多个条件用 AND 连接)。
支持 AND 和 OR。
可将 ? 和 * 字符用作 glob(3C) 式通配符,以更灵活地获取查询匹配项。
除了支持简单的标记匹配和通配符搜索外,还支持更复杂的查询语言。可通过使用单引号或双引号(' 或 ")来搜索短语。请务必考虑所用的 shell,使 pkg 能够真正识别 ' 或 "。
要为哪些标记建立索引是与操作相关的,不过可以包括内容散列和路径名称。有关操作及其属性的信息,请参见 pkg(5) 手册页中的“操作”。另请参见上面 pkg contents 和 –o 中的伪属性名称列表。
结构化查询支持以下语法:
pkg_name:action_name: index:token
action_name 的值是 pkg(5) 手册页的“操作”中列出的操作之一。index 是操作的属性。index 的值必须与 token 匹配。
并非所有操作属性都是可搜索的。例如,mode 是 file 操作的一个属性,但是 mode 不是 index 的有效值。
index 的某些值并不是操作属性,而是从其他属性派生的值。例如,index 可以是 basename,其不是任何操作的属性,而是派生自 file 或 dir 操作的 path 属性,它采用了路径的最后组成部分。
不同的操作类型有不同的 index 有效值。本文档并未列出所有可能的值。一些更为有用的 index 值包括,对应于文件系统操作的 basename 和 path、对应于 depend 操作的依赖性类型(例如 require、optional、group),以及对应于 driver 操作的 driver_name 和 alias。
index 的一个特殊值是对应于 set 操作的 name 属性值。在这种情况下,token 与对应于指定 name 属性的 value 属性的值相匹配。例如,以下搜索将查找分类为 "Development/Databases" 或 "System/Databases" 的软件包。请参见“示例”部分中查找 SMF 服务的示例。
$ pkg search info.classification:databases
结构化查询中缺少的字段使用隐式通配符。搜索 basename:pkg 将会匹配 index 为 basename 且与 token pkg 匹配的所有软件包中的所有操作,如以下部分输出中所示:
$ pkg search basename:pkg INDEX ACTION VALUE PACKAGE basename dir usr/share/pkg pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 basename dir var/sadm/pkg pkg:/package/svr4@0.5.11-0.175.0.0.0.2.1 basename dir var/spool/pkg pkg:/package/svr4@0.5.11-0.175.0.0.0.2.1 basename file usr/bin/pkg pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1
添加其他字段将会缩小搜索范围,如以下完整输出中所示:
$ pkg search file:basename:pkg INDEX ACTION VALUE PACKAGE basename file usr/bin/pkg pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1
pkg_name 和 token 字段中支持显式通配符。action_name 和 index 必须完全匹配。
有关搜索文件和依赖项的示例,请参见“示例”部分。
要将操作转换为包含这些操作的软件包,请使用 <>,如以下部分输出中所示:
$ pkg search \<pkg\> PACKAGE PUBLISHER pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 solaris pkg:/package/svr4@0.5.11-0.175.0.0.0.2.1 solaris
使用 –a 选项(缺省设置)时,搜索 token 会导致返回与 token 匹配的操作的信息,而搜索 <token> 会导致返回一个软件包列表,这些软件包包含与 token 匹配的操作。
验证当前映像中安装的所有软件包的安装情况。如果相关发布者的当前签名策略不是 ignore,则会根据策略验证每个软件包的签名。有关如何应用签名策略的说明,请参见下文“映像属性”中的 signature-policy。
仅验证当前映像中安装的指定软件包的安装情况。
在验证输出中省略标题。
隐藏请求的操作过程中的进度消息和所有其他输出。
包括有关软件包的信息性消息。
修复 pkg verify 报告的任何错误。已安装软件包内容的验证基于定制的内容分析,该分析可能会返回与其他程序不同的结果。
仅修复 pkg verify 报告的有关当前映像中安装的指定软件包的错误。
表示同意并接受所更新或安装的软件包的许可证条款。如果存在任何需要您接受的软件包许可证,而您未提供此选项,则操作将失败。
显示在此操作过程中所安装或更新的软件包的所有许可证。对于更新的软件包,仅当许可证已更改时才显示许可证。
将 pkg(5) 软件包提供的文件恢复为其交付时的状态。文件所有权和保护也会得到恢复。
注意 - 将某些可编辑文件恢复为其缺省值可能会使系统无法引导,或导致其他故障。 |
恢复使用 tag-name 标记的所有文件,并删除带有此标记的目录下匹配 pattern 的所有未打包的文件或目录。有关 tag-name 和 pattern 的更多信息,请参见 pkg(5) 手册页“文件操作”和“目录操作”中对 revert-tag 属性的说明。
恢复指定的文件。
对于其他所有选项,请参见上面的 install 命令。
显示所有中介的当前选定版本和/或实现。
仅显示指定中介的当前选定版本和/或实现。
指定备用输出格式。format 的值可以是 tsv(以制表符分隔的值)、json(单行 JavaScript 对象表示法)或 json-formatted(格式易于阅读的 JavaScript 对象表示法)。
在列出时省略标题。
列出可为当前安装的软件包设置的中介。
设置当前映像中指定中介的版本和/或实现。
设置要使用的中介接口的实现。缺省情况下,如果未指定版本,则允许所有实现版本。要指定一个没有版本的实现,请附加 @ 符号。
设置要使用的中介接口的版本。
如果指定的中介版本和/或实现当前不可用,则会删除使用指定中介的任何链接。
对于其他所有选项,请参见上面的 install 命令。
将指定中介的版本和/或实现恢复为系统缺省值。
仅恢复中介接口的实现。
仅恢复中介接口的版本。
对于其他所有选项,请参见上面的 install 命令。
显示在此映像中设置的所有变量的当前值。有关变量的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
仅显示在此映像中设置的指定变量的当前值。
指定备用输出格式。有关说明,请参见 pkg mediator 命令。
在列出时省略标题。
显示映像中显式设置的所有变体以及在已安装软件包中列出的所有变体。–a 选项不能与 –i 选项一起使用。
显示在已安装软件包中列出的所有变体。–i 选项不能与 –a 选项一起使用。
显示可为已安装软件包设置的可能变体值。–v 选项可与 –a 或 –i 选项一起使用。
更改在当前映像中设置的指定变量的值。
更改变量的值可能会导致删除、更新或安装某些软件包内容。更改变量值还可能会导致安装、更新或删除整个软件包,以满足新的映像配置。有关变量的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
有关选项的说明,请参见上述 install 命令。
显示使用 pkg change-facet 命令在此映像中本地设置或从父映像继承(例如非全局区域继承全局区域的侧面设置)的所有侧面的当前值和源。有关侧面的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
仅显示在此映像中设置的指定侧面的当前值。
指定备用输出格式。有关说明,请参见 pkg mediator 命令。
在列出时省略标题。
显示映像中显式设置的所有侧面以及在已安装软件包中列出的所有侧面。–a 选项不能与 –i 选项一起使用。
显示在已安装软件包中列出的所有侧面。–i 选项不能与 –a 选项一起使用。
包括在输出中被屏蔽的侧面。显示一列指示被屏蔽的侧面(如果有)。被屏蔽的侧面是在映像中本地设置(使用 pkg change-facet 命令)且被同名的继承侧面隐藏的侧面。
更改当前映像中设置的指定侧面的值。更改也将发生在继承这些侧面的所有映像中,例如非全局区域。
可以将侧面设置为 True 或 False。将侧面设置为 None 时,系统会将缺省值 True 应用于该侧面;因此将安装任何由此侧面约束的操作。有关操作的信息,请参见 pkg(5) 手册页中的“操作”。
更改侧面的值可能会导致删除、更新或安装某些软件包内容。更改侧面值还可能会导致安装、更新或删除整个软件包,以满足新的映像配置。有关侧面的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
有关选项的说明,请参见上述 install 命令。
显示每个避免安装的软件包,以及对该软件包存在组依赖性的任何软件包。
如果需要满足 require 依赖性,则会安装避免列表中的软件包。如果删除了该依赖性,则会卸载相应的软件包。
如果指定的软件包是某个组依赖性的目标,则会通过将匹配指定模式的软件包名称放置在避免列表中来避免安装这些软件包。只能避免安装当前尚未安装的软件包。如果某个软件包当前是某个组依赖性的目标,则卸载该软件包会将它放置在避免列表中。
显示避免安装的软件包的列表。
从避免列表中删除指定的软件包。使用此子命令无法删除避免列表中与某个已安装软件包的组依赖性相匹配的软件包。要从避免列表中删除与某个组依赖性相匹配的软件包,请安装该软件包。
显示有关当前已冻结软件包的信息:软件包名称、版本、软件包冻结时间以及任何冻结软件包的相关原因。
冻结某个软件包不会阻止删除该软件包。删除软件包时不会显示警告。
将指定的软件包冻结到指定的版本。如果未提供版本,则必须安装该软件包,然后将它冻结在该已安装版本。冻结一个已经冻结的软件包会将冻结版本替换为新指定的版本。
如果安装或更新冻结的软件包,则其最终版本必须与冻结时使用的版本匹配。例如,如果某个软件包在冻结时的版本为 1.2,则可以将它更新到 1.2.1、1.2.9、1.2.0.0.1,等等。但该软件包的最终版本不能为 1.3 或 1.1。pkg_fmri_pattern 中提供的发布者用于查找匹配的软件包。但是,在冻结过程中不会记录发布者信息。软件包只针对其版本(而不是发布者)进行冻结。
记录冻结软件包的 原因。当安装或更新因冻结而不能继续进行时,将会显示该原因。
试运行冻结操作,并显示要冻结的软件包的列表,但不冻结任何软件包。
显示有关当前已冻结软件包的信息:软件包名称、版本、软件包冻结时间以及任何冻结软件包的相关原因。
从指定的软件包中删除冻结操作施加的约束。将会忽略提供的版本。
试运行解冻操作,并显示要解冻的软件包的列表,但不解冻任何软件包。
显示所有映像属性的名称和值。有关映像属性的说明,请参见下面的“映像属性”。
仅显示指定属性的名称和值。
在列出时省略标题。
更新现有映像属性或添加新的映像属性。
向现有映像属性添加值,或添加新的映像属性。
从现有映像属性中删除值。
删除一个或多个现有映像属性。
按搜索优先顺序显示所有发布者的列表。为每个发布者显示以下信息:名称、属性(例如非粘性和已禁用)、类型(源或镜像)、联机状态、代理和位置 URI。代理信息在标记为 P 的列下仅显示为 T (true) 或 F (false)。要在 P 列中为具有 T 的发布者显示代理值,请使用 -F tsv 选项或指定发布者名称参数。pkg publisher 命令显示的代理是使用 pkg set-publisher 命令的 –-proxy 选项来设置的。pkg publisher 命令不显示通过使用 http_proxy 环境变量设置的代理。
仅显示指定发布者的详细配置信息。显示的其他信息包括代理 URI、键和每个源或镜像 URI 的证书、客户机 UUID 以及上次更新目录的时间。
指定备用输出格式。有关说明,请参见 pkg mediator 命令。
在列出时省略标题。
仅显示发布者搜索顺序中的第一个发布者。
仅显示已启用的发布者。
更新现有发布者,或添加发布者。如果未指定任何影响搜索顺序的选项,则会将新发布者附加到搜索顺序,因此,会最后搜索这些新发布者。
从给定发布者的源列表中删除 URI 或路径。可以使用特殊值 * 来删除所有源。
从给定发布者的镜像列表中删除 URI。可以使用特殊值 * 来删除所有镜像。
将指定的发布者设置为搜索顺序中第一个。安装新软件包时,将首先搜索此发布者。对已安装软件包的更新将来自最初提供该软件包的同一发布者,前提是该发布者保持粘滞。
指定客户机 SSL 证书。
禁用发布者。填充软件包列表时,或者执行某些软件包操作(安装、卸载和更新)时,将不使用被禁用的发布者。但是,仍可以设置和查看被禁用的发布者的属性。如果只存在一个发布者,则不能将其禁用。
启用发布者。
将指定的 URI 或路径添加为给定发布者的源。这应该是软件包系统信息库或归档的位置。
指定客户机 SSL 密钥。
将 URI 添加为给定发布者的镜像。
向现有发布者属性添加值,或添加新的发布者属性。
为了验证签名的软件包,将指定的证书添加为受信任的 CA 证书。pkg publisher 命令的详细输出中列出了用户批准的 CA 证书的 PEM 表示形式中的散列。
不尝试联系映像发布者的系统信息库来检索最新的可用软件包列表和其他元数据。
对于最初从此发布者安装的软件包,更新可以从级别比此发布者更高的发布者处获取。
使用指定的代理 URI 检索指定源 (–g) 或镜像 (–m) 的内容。代理值被存储为发布者配置的一部分,这意味着子映像所使用的系统信息库是自动更新的。此选项不能用于设置验证代理。proxy_to_use 值不能使用 protocol://user:password@host 格式。
在运行时,http_proxy 或相关环境变量会覆盖此代理设置。有关接受的环境变量名列表,请参见 curl(1) 手册页的“环境”部分。如果使用环境变量来设置代理 URI,则必须也将 svc:/application/pkg/system-repository SMF 服务的相应代理属性设置为同一值。请参见《Adding and Updating Software in Oracle Solaris 11.2》中的 "Specifying a Proxy"。
从现有发布者属性中删除值。
选择一个新的唯一标识符,用于向其发布者标识此映像。
为了验证签名的软件包,将具有证书的 PEM 表示形式的给定散列的证书视为已撤销。pkg publisher 命令的详细输出中列出了用户撤销的 CA 证书的散列。
更改发布者搜索顺序,以便在此选项中指定的发布者之后搜索添加或修改的发布者。
更改发布者搜索顺序,以便在此选项中指定的发布者之前搜索添加或修改的发布者。
更新现有发布者属性或添加新的发布者属性。
对于从此发布者安装的软件包,更新必须也来自此发布者。这是缺省行为。
为了验证签名的软件包,会从已批准证书列表和已撤销证书列表中删除具有给定散列的证书。
删除现有的发布者属性。
从 repo_uri 系统信息库 URI 中检索发布者配置信息。
如果为此 set-publisher 子命令指定了发布者操作数,则仅添加或更新该发布者。如果未指定发布者,则相应添加或更新 repo_uri 中的所有发布者。
有关选项的说明,请参见上述 set-publisher 命令。与 –p 一起使用时,–P、–-search-first、–-search-before 以及 –-search-after 选项仅适用于添加的发布者,而不适用于更新的发布者。
–p 选项不能与以下选项结合使用:–g、–-add-origin、–G、–-remove-origin、–m、–-add-mirror、–M、–-remove-mirror、–-disable、–-enable、–-no-refresh 或 –-reset-uuid。
删除与一个或多个指定发布者相关联的配置。
显示适用映像的命令历史记录。显示操作的开始时间、操作的名称(例如 install)、客户机(例如 pkg)和操作的结果(成功或失败)。
在列出时省略标题。
显示映像的命令历史记录的长格式。显示的其他信息包括客户机的版本、执行操作的用户的名称、是否创建了新引导环境、操作完成时间和花费的总时间、发出的完整命令以及执行命令时遇到的任何错误。对于 update 等操作,显示已更改软件包的完整 FMRI。
显示发行说明文本。
仅显示指定数目的最近条目。
使用指定的列名称显示输出。可以多次指定 –o 选项;也可以通过使用逗号分隔列名称,将多个列名称指定为一个 –o 选项的参数。有效的列名为:
在其上启动此操作的引导环境的名称。
在其上启动此操作的引导环境的 uuid。
客户端的名称。
客户端的版本。
用于此操作的命令行。
完成此操作时的时间。
启动此操作的用户 ID。
此操作创建的新引导环境。
此操作创建的新引导环境的 uuid。
操作的名称。
此操作的结果摘要。
有关此操作的结果的其他信息。
指示此操作是否已生成发行说明。
执行此操作期间创建的快照。仅当成功完成操作后未自动删除快照时,才会记录此信息。
启动此操作时的时间。
执行此操作花费的总时间。对于用时不到一秒的操作,将显示 0:00:00。
启动此操作的用户名。
如果指定了 command 或 reason 列,则它们必须是 –o 列表中的最后一项,这样才能让输出字段彼此分隔。这两列不能显示在同一个 history 命令中。
如果系统上不再存在该引导环境,则在 be 或 new_be 值的后面会显示一个星号 (*)。
可通过使用 be_uuid 或 new_be_uuid 字段查找当前引导环境名称,来获取 be 和 new_be 的值。如果某个引导环境后来已重命名,随后又被删除,则显示的 be 和 new_be 值是执行 pkg 操作时记录的值。
显示以逗号分隔列表指定的时间戳(格式为 %Y-%m-%dT%H:%M:%S)对应的日志记录(请参见 strftime(3C) 手册页)。要指定时间范围,请在开始和完成时间戳之间放置连字符 (-)。可以将关键字 now 用作当前时间的别名。可以多次指定此选项。如果指定的时间戳包含重复的时间戳或重叠的范围,则不显示重复的历史记录事件。仅显示每个历史记录事件的一个实例。
删除所有现有历史记录信息。
重建由 pkg search 使用的索引。这是一项恢复操作,不适用于一般用途。
将映像格式更新到当前版本。完成此操作后,该映像无法再在早期版本的 pkg(5) 系统上使用。
显示一个用于唯一标识 pkg 版本的字符串。不保证在不同版本中,此字符串在任何方面都具有类似性。
显示用法消息。
在 dir 指定的位置,创建一个适合于软件包操作的映像。无法引导使用 image-create 子命令创建的映像。大多数用户应该将 –-be-name 或 –-require-new-be 选项与 pkg 命令配合使用,或者使用 beadm 或 zoneadm 命令创建映像。pkg image-create 命令用于维护软件包和操作系统分发等任务。
缺省的映像类型为“用户”,可以通过使用 –U 或 –-user 选项来指定。或者,可以将映像类型设置为完整映像(–-F 或 –-full),或者设置为与完整映像(包括给定的 –dir 路径)链接的部分映像(–P 或 -partial)。
可以使用 –g 或 –-origin 指定其他源。可以使用 –m 或 –-mirror 指定其他镜像。
必须使用 –p 或 –-publisher 选项提供软件包系统信息库 URI。如果还提供了某个发布者名称,则创建映像时仅添加该发布者。如果未提供发布者名称,则会将指定的系统信息库已知的所有发布者添加到映像。完成初始创建操作后,将会尝试检索与此发布者关联的目录。
对于使用客户端 SSL 验证的发布者,可以通过 –c 和 –k 选项注册客户端密钥和客户端证书。此密钥和证书用于映像创建期间添加的所有发布者。
如果要在非全局区域上下文中运行映像,请使用 –z (–-zone) 选项设置相应的变体。
基于现有映像强制创建一个映像。请慎用此选项。
将指定的侧面设置为指示值。有关侧面的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
不尝试联系映像发布者的系统信息库来检索最新的可用软件包列表和其他元数据。
将指定的映像属性设置为指示值。有关映像属性的说明,请参见下面的“映像属性”。
将指定的变量设置为指示值。有关变量的更多信息,请参见 pkg(5) 手册页中的“侧面和变量”。
以下属性可定义映像的特征。这些属性存储有关映像的用途、内容和行为的信息。要查看映像中这些属性的当前值,请使用 pkg property 命令。要修改这些属性的值,请使用 pkg set-property 和 pkg unset-property 命令。
(字符串)指定在打包操作期间何时创建引导环境。允许使用以下值:
应用缺省引导环境创建策略 create-backup。
所有软件包操作均需要重新引导:在下次引导时设为活动状态的新引导环境中执行这些操作。除非显式请求,否则不创建备份引导环境。
该策略最为安全,但是它比大多数站点的需要更为严格,因为在不重新引导的情况下无法添加任何软件包。
对于需要重新引导的软件包操作,在下一次引导时,将创建一个新的引导环境并将其设置为活动状态。如果修改了软件包或安装了可能影响内核的内容,并且该操作影响实时引导环境,将创建备份引导环境,但不会将其设置为活动状态。也可以显式请求创建备份引导环境。
仅当新安装的软件导致系统不稳定时(有可能发生,但比较少见),该策略才可能存在风险。
对于需要重新引导的软件包操作,在下一次引导时,将创建一个新的引导环境并将其设置为活动状态。除非显式请求,否则不创建备份引导环境。
该策略的风险最高,因为如果对实时引导环境的打包更改使得以后无法再进行更改,则可能没有可回退的最近引导环境。
(字符串)一个路径名称,指向为执行 SSL 操作而将 CA 证书保存到的目录。此目录的格式特定于底层 SSL 实现。要对可信 CA 证书使用替代位置,请将此值更改为指向另一个目录。有关 CA 目录的要求,请参见 SSL_CTX_load_verify_locations(3openssl) 的 CApath 部分。
缺省值:/etc/openssl/certs
(布尔型)如果此属性设置为 True,则软件包客户机将尝试访问用于签名验证的证书中的任何 CRL 分发点,以确定证书自颁发以来是否已被撤销。
缺省值:False
(字符串)指定在打包操作期间软件包系统何时更新不可编辑的文件。允许使用以下值:
始终应用缺省内容更新策略。
始终下载并更新已更改的不可编辑文件。
仅当软件包系统已确定需要进行更新时,才下载并更新已更改的不可编辑文件。
缺省值:always
(布尔型)如果此属性设置为 True,则映像修改操作成功完成时软件包客户机将删除其内容高速缓存中的文件。对于创建引导环境的操作,将同时从源和目标引导环境中删除内容。
在磁盘空间有限的系统上,可以使用此属性使内容高速缓存保持为较小的大小。此属性可能会导致花费更长的时间来完成操作。
缺省值:True
(布尔型)此属性通知客户端使用 mDNS 和 DNS-SD 发现本地链路内容镜像。如果此属性设置为 True,则客户机尝试从其动态发现的镜像中下载软件包内容。要运行一个通过 mDNS 通告其内容的镜像,请参见 pkg.depotd(1M) 手册页。
缺省值:False
(布尔型)执行网络操作时发送映像的通用唯一标识符 (Universally Unique Identifier, UUID)。尽管用户可以禁用此选项,但是某些网络系统信息库可能会拒绝与不提供 UUID 的客户机通信。
缺省值:True
(字符串)确定在映像中安装、更新、修改或验证软件包时,要对清单执行哪些检查。应用于软件包的最终策略取决于映像策略和发布者策略的组合。该策略组合的严格程度至少相当于这两个策略单独执行时较严格的那一个。缺省情况下,软件包客户机不检查证书是否已撤销。要启用这些检查(可能需要客户机访问外部 Internet 站点),请将 check-certificate-revocation 映像属性设置为 True。允许使用以下值:
忽略所有清单的签名。
验证所有具有签名的清单的签名是否有效,但不要求签名所有安装的软件包。这是缺省值。
要求所有新安装的软件包至少具有一个有效签名。如果安装的软件包不具备有效签名,pkg fix 和 pkg verify 命令也会发出警告。
与 require-signatures 遵循相同的要求,但还要求 signature-required-names 属性中列出的字符串显示为用于验证签名信任链的证书的通用名称。
(字符串列表)在验证软件包签名时必须视为证书通用名称的名称列表。
(字符串)包含映像信任锚的目录的路径名称。此路径是映像的相对路径。缺省值为 ignore。
(布尔型)此属性指示映像是否应使用系统信息库作为映像和发布者配置的源,以及作为与提供的发布者通信的代理。缺省值为 False。有关系统信息库的信息,请参见 pkg.sysrepo(1M) 手册页。
以下属性定义了特定发布者的签名策略。具有相同名称的映像属性定义了该映像的签名策略。要查看特定发布者的这些属性的当前值,请使用 pkg publisher publisher_name 命令。要修改发布者的这些签名策略属性的值,请使用 pkg set-publisher 命令的 –-set-property 和 –-unset-property 选项。
(字符串)此属性的作用与同名映像属性的功能相同,不过它仅适用于来自特定发布者的软件包。
(字符串列表)此属性的作用与同名映像属性的功能相同,不过它仅适用于来自特定发布者的软件包。
使用 /aux0/example_root 中存储的发布者 example.com 创建一个新的完整映像。
$ pkg image-create -F -p example.com=http://pkg.example.com:10000 \ /aux0/example_root示例 2 创建一个映像并指定附加源和镜像
使用发布者 example.com 创建一个新的完整映像。该映像还有一个附加镜像、两个附加源,并存储在 /aux0/example_root 中。
$ pkg image-create -F -p example.com=http://pkg.example.com:10000 \ -g http://alternate1.example.com:10000/ \ -g http://alternate2.example.com:10000/ \ -m http://mirror.example.com:10000/ \ /aux0/example_root示例 3 在未配置发布者的情况下创建映像
在未配置发布者的情况下,在 /aux0/example_root 中创建一个新的完整映像。
$ pkg image-create -F /aux0/example_root示例 4 安装软件包
在当前映像中安装最新版本的 widget 软件包。
$ pkg install application/widget示例 5 列出软件包的指定内容
列出 system/file-system/zfs 软件包的内容。显示操作名称、文件模式(如果已定义)、大小(如果已定义)、路径和目标(如果为链接)。将操作限制为类型 dir、file、link 和 hardlink,因为指定可用于所有操作的 action.name 属性将显示一个列出了所有操作的行,而此处并不需要显示它。
$ pkg contents -t dir,file,link,hardlink \ -o action.name,mode,pkg.size,path,target system/file-system/zfs ACTION.NAME MODE PKG.SIZE PATH TARGET dir 0755 etc dir 0755 etc/fs dir 0755 etc/fs/zfs link etc/fs/zfs/mount ../../../usr/sbin/zfs link etc/fs/zfs/umount ../../../usr/sbin/zfs dir 0755 etc/zfs dir 0755 kernel dir 0755 kernel/drv dir 0755 kernel/drv/amd64 file 0755 1706744 kernel/drv/amd64/zfs file 0644 980 kernel/drv/zfs.conf dir 0755 kernel/fs dir 0755 kernel/fs/amd64 hardlink kernel/fs/amd64/zfs ../../../kernel/drv/amd64/zfs ...示例 6 列出两个软件包的指定内容
列出 web/browser/firefox 和 mail/thunderbird 的内容,将显示的内容仅限于软件包名称,以及其 path 属性以 .desktop 或 .png 结尾的操作的路径属性。
$ pkg contents -o pkg.name,path -a path=\*.desktop \ -a path=\*.png web/browser/firefox mail/thunderbird PKG.NAME PATH web/browser/firefox usr/share/applications/firefox.desktop mail/thunderbird usr/share/applications/thunderbird.desktop web/browser/firefox usr/share/pixmaps/firefox-icon.png mail/thunderbird usr/share/pixmaps/thunderbird-icon.png ...示例 7 搜索软件包
在软件包数据库中搜索标记 bge。
$ pkg search bge INDEX ACTION VALUE PACKAGE driver_name driver bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1 basename file kernel/drv/sparcv9/bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1 basename file kernel/drv/amd64/bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1 basename file platform/sun4v/kernel/drv/sparcv9/bge pkg:/system/kernel/platform@0.5.11-0.175.0.0.0.2.1 pkg.fmri set solaris/driver/network/bge pkg:/driver/network/bge@0.5.11-0.173.0.0.0.1.0 pkg.fmri set solaris/driver/network/ethernet/bge pkg:/driver/network/ethernet/bge@0.5.11-0.175.0.0.0.2.1
该标记在软件包 driver/network/bge 中,既用作代表 /kernel/drv/ arch/bge 的文件操作的基名,又用作驱动程序名称。
示例 8 搜索文件要搜索提供某个文件的软件包,请指定该文件的全路径名,包括开头的斜杠字符。
$ pkg search -o path,pkg.name -l /usr/bin/vim PATH PKG.NAME usr/bin/vim editor/vim/vim-core
要搜索某个文件和提供该文件的软件包,请指定 file(对于 action_name)、path 或 basename(对于 index),以及完整或部分文件名(对于 token)。
$ pkg search -o path,pkg.name -l file:basename:vim PATH PKG.NAME usr/bin/vim editor/vim/vim-core示例 9 搜索文件和目录
要搜索文件和目录以及提供它们的软件包,请指定 path 或 basename(对于 index)以及完整或部分文件名(对于 token)。根据您的 shell,您可能需要对通配符进行转义。
$ pkg search -o path,pkg.name -l path:*/vim PATH PKG.NAME usr/bin/vim editor/vim/vim-core usr/share/vim editor/vim usr/share/vim editor/vim/vim-core $ pkg search -o path,pkg.name -l basename:vim PATH PKG.NAME usr/share/vim editor/vim usr/share/vim editor/vim/vim-core usr/bin/vim editor/vim/vim-core示例 10 显示哪些软件包提供特定的 SMF 服务
要显示哪些软件包提供特定的 SMF 服务,请在结构化搜索中为 index 指定 org.opensolaris.smf.fmri 值,并为 token 指定要查找的服务名称。org.opensolaris.smf.fmri 值是 set 操作的某个属性的名称。请注意对服务名称中的 : 进行转义。
例如,要显示哪些 HTTP 服务器可用,请为 token 指定 svc:/network/http 值。
$ pkg search 'org.opensolaris.smf.fmri:svc\:/network/http*' INDEX ACTION VALUE PACKAGE org.opensolaris.smf.fmri set svc:/network/http pkg:/web/server/lighttpd-14@1.4.23-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http pkg:/web/proxy/privoxy@3.0.17-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http pkg:/web/proxy/squid@3.1.18-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http pkg:/web/java-servlet/tomcat@6.0.35-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http pkg:/web/server/apache-22@2.2.22-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http:apache22 pkg:/web/server/apache-22@2.2.22-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http:lighttpd14 pkg:/web/server/lighttpd-14@1.4.23-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http:privoxy pkg:/web/proxy/privoxy@3.0.17-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http:squid pkg:/web/proxy/squid@3.1.18-0.175.0.0.0.2.1 org.opensolaris.smf.fmri set svc:/network/http:tomcat6 pkg:/web/java-servlet/tomcat@6.0.35-0.175.0.0.0.2.1示例 11 搜索依赖于指定软件包的软件包
搜索依赖于 package/pkg 的已安装软件包。
$ pkg search -l depend::package/pkg INDEX ACTION VALUE PACKAGE incorporate depend package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/ips/ips-incorporation@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/package/pkg/package-manager@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/library/install@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/package/pkg/update-manager@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/library/boot-management@0.5.11-0.175.0.0.0.2.1 require depend package/pkg pkg:/system/zones/brand/brand-solaris@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/install/distribution-constructor@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/system/boot-environment-utilities@0.5.11-0.175.0.0.0.2.1 require depend pkg:/package/pkg@0.5.11-0.175.0.0.0.2.1 pkg:/package/pkg/system-repository@0.5.11-0.175.0.0.0.2.1示例 12 搜索依赖性
在安装的软件包中搜索所有 incorporate 依赖性。
$ pkg search -l depend:incorporate: INDEX ACTION VALUE PACKAGE incorporate depend pkg:/BRCMbnx@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/osnet/osnet-incorporation@0.5.11-0.175.0.0.0.2.1 incorporate depend pkg:/BRCMbnxe@0.5.11-0.175.0.0.0.2.1 pkg:/consolidation/osnet/osnet-incorporation@0.5.11-0.175.0.0.0.2.1 ...示例 13 添加发布者
添加新的发布者 example.com,该发布者的系统信息库位于 http://www.example.com/repo。
$ pkg set-publisher -g http://www.example.com/repo example.com示例 14 添加具有密钥和证书的发布者
添加新的发布者 example.com,该发布者的安全系统信息库位于 https://secure.example.com/repo,其密钥和证书存储在目录 /root/creds 中。
$ pkg set-publisher -k /root/creds/example.key \ -c /root/creds/example.cert -g https://secure.example.com/repo \ example.com示例 15 添加并自动配置发布者
使用自动配置功能添加一个新的发布者,该发布者的系统信息库位于 /export/repo。
$ pkg set-publisher -p /export/repo示例 16 添加并手动配置发布者
使用手动配置功能添加新的发布者 example.com,该发布者的系统信息库位于 /export/repo/example.com。
$ pkg set-publisher -g /export/repo example.com示例 17 添加发布者并配置代理
添加源为 http://server/repo、代理为 http://webcache:8080 的新发布者 mypub。
$ pkg set-publisher -g http://server/repo \ --proxy http://webcache:8080 mypub示例 18 验证所有签名的软件包
配置一个映像以验证所有签名的软件包。
$ pkg set-property signature-policy verify示例 19 要求签名所有软件包
配置一个映像,以要求签名所有软件包,并要求字符串 example.com 显示为信任链中某一个证书的通用名称。
$ pkg set-property signature-policy require-names example.com示例 20 要求对来自指定发布者的所有软件包进行签名
配置一个映像,以便必须对通过发布者 example.com 安装的所有软件包进行签名。
$ pkg set-publisher --set-property signature-policy=require-signatures \ example.com示例 21 要求信任链中存在指定的字符串
将字符串 foo 添加到映像的通用名称列表,这些通用名称必须显示在签名的信任链中才能视为有效。
$ pkg add-property-value signature-require-names foo示例 22 从指定发布者的信任链中删除某个字符串
从通用名称列表中删除字符串 foo,必须显示这些通用名称才能验证发布者 example.com 的签名。
$ pkg set-publisher --remove-property-value signature-require-names=foo \ example.com示例 23 添加可信 CA 证书
添加 /tmp/example_file.pem 中存储的证书,作为发布者 example.com 的可信 CA 证书。
$ pkg set-publisher --approve-ca-cert /tmp/example_file.pem \ example.com示例 24 撤销证书
撤销发布者 example.com 的、包含散列 a12345 的证书,防止该证书验证来自 example.com 的软件包的任何签名。
$ pkg set-publisher --revoke-ca-cert a12345 example.com示例 25 忘记针对某个证书执行的操作
使 pkg 忘记用户曾经添加或撤销了证书 a12345。
$ pkg set-publisher --unset-ca-cert a12345 example.com示例 26 将软件包降级
将安装的软件包 foo@1.1 降级到更低的版本。
$ pkg update foo@1.0示例 27 切换发生冲突的软件包安装
当两个软件包发生冲突时,切换所安装的软件包。假定软件包 A 依赖于软件包 B 或软件包 C,而 B 和 C 是互斥的。如果安装了 A 和 B,则使用以下命令即可改为使用 C 而不是 B,且无需卸载 A:
$ pkg install --reject B C示例 28 列出软件包归档中的软件包
列出某个软件包归档中所有软件包的所有版本。
$ pkg list -f -g /my/archive.p5p示例 29 列出软件包系统信息库中的软件包
列出某个系统信息库中所有软件包的所有版本。
$ pkg list -f -g http://example.com:10000示例 30 显示有关软件包归档中某个软件包的信息
显示软件包归档中某个软件包的最新版本的软件包信息。该软件包当前不一定已安装。
$ pkg info -g /my/archive.p5p pkg_name示例 31 显示软件包归档中某个软件包的内容
显示软件包归档中某个软件包的内容。该软件包当前未安装。
$ pkg contents -g /my/archive.p5p pkg_name示例 32 删除发布者的所有源和镜像
删除某个发布者的所有源和镜像,并添加新的源。
$ pkg set-publisher -G '*' -M '*' -g http://example.com:10000 \ example.com
用于软件包操作的映像所在的目录。如果指定了 –R,则会忽略此属性。
传输操作期间尝试建立连接时等待的秒数(针对每次尝试),达到此秒数后,客户端会异常中止操作。值 0 表示无限期等待。
缺省值:60
传输操作期间低于 lowspeed 限制(1024 字节/秒)的秒数,达到此秒数后,客户机会异常中止操作。值 0 表示不中止运行。
缺省值:30
客户端异常中止操作之前发生瞬态传输错误的最大次数。值 0 表示不中止运行。
缺省值:4
在传输操作期间,异常中止某个连接之前允许的最大 HTTP 或 HTTPS 重定向次数。值 0 表示不中止运行。
缺省值:5
要并行更新的子映像数。如果指定了 –C 选项,则会忽略此属性。
在递归检查子映像(通常为安装的 solaris 标记非全局区域)时,最多可以并行更新 $PKG_CONCURRENCY 个子映像。如果 $PKG_CONCURRENCY 为 0 或负数,则并行更新所有子映像。
缺省值:1
客户端异常中止操作之前每台主机上的最大传输尝试次数。值 0 表示不中止运行。
缺省值:4
HTTP 或 HTTPS 代理服务器。
将返回以下退出值:
命令成功。
出现错误。
指定的命令行选项无效。
请求了多项操作,但只有一部分操作成功。
未进行更改-没有要执行的操作。
无法对实时映像执行请求的操作。
无法完成请求的操作,因为尚未接受所安装或更新的软件包的许可证。
该映像当前已被另一个进程使用,无法修改。
一个或多个 SMF 执行器超时。
发生了意外的异常。
可将 pkg(5) 映像放置在较大文件系统中的任意位置。在以下文件描述中,标记 $IMAGE_ROOT 用于区分相对路径。对于典型的系统安装,$IMAGE_ROOT 等效于 /。
完整或部分映像的元数据目录。
用户映像的元数据目录。
在特定映像的元数据中,某些文件和目录可能包含修复和恢复期间有用的信息。标记 $IMAGE_META 引用元数据所在的顶层目录。$IMAGE_META 通常是上述两个路径之一。
在软件包操作期间移动的有冲突目录和文件的位置。某个已删除目录的未打包内容的位置。
为每个发布者包含一个目录。每个目录存储特定于发布者的元数据。
$IMAGE_META 目录分层结构中的其他路径是专用的,可能会进行更改。
有关下列属性的说明,请参见 attributes(5):
|
pkgsend(1)、beadm(1M)、pkg.depotd(1M)、pkg.sysrepo(1M)、glob(3C)、pkg(5)
在 Oracle Solaris 11.2 中添加和更新软件
https://java.net/projects/ips/pages/Home