跳过导航链接 | |
退出打印视图 | |
![]() |
添加和更新 Oracle Solaris 11 软件包 Oracle Solaris 11 Information Library (简体中文) |
可使用 pkg search 命令搜索数据与指定模式匹配的软件包。
/usr/bin/pkg search [-HIaflpr] [-o attribute ...] [-s repo_uri] query
和 pkg contents 命令一样,pkg search 命令检查软件包的内容。pkg contents 命令返回内容,而 pkg search 命令返回与查询匹配的软件包的名称。
缺省情况下,pkg search 查询术语采用完全匹配(但不区分大小写)。可使用 -I 选项指定区分大小写的搜索。在查询术语中可以使用 ? 和 * 通配符。
可以指定多个查询术语。缺省情况下,多个术语以 AND 连接。可以使用 OR 显式连接两个术语。
可以按以下结构化形式表达查询:
pkg_name:action_type: key:token
对缺少的字段使用隐式通配符。pkg_name 和 token 字段中支持显式通配符。action_type 和 key 必须完全匹配。有关软件包操作和键的列表,请参见 pkg(5) 手册页。
缺省情况下,搜索与为此映像配置的所有发布者关联的系统信息库。可使用 -l 选项仅搜索安装于此映像中的软件包。可使用 -s 选项指定要搜索的系统信息库的 URI。
缺省情况下,仅显示匹配的当前安装的软件包版本或新软件包版本。可使用 -f 选项显示所有匹配的版本。
以下示例显示 libpower 库来自 system/kernel/power 软件包。
$ pkg search -l -H -o pkg.name /lib/libpower.so.1 system/kernel/power
以下示例找出了 info.classification 属性值中含有 "Source Code Management" 的所有软件包。
# pkg search ':set:info.classification:Source Code Management' INDEX ACTION VALUE PACKAGE info.classification set Development/Source Code Management pkg:/developer/versioning/subversion@1.6.16 info.classification set Development/Source Code Management pkg:/developer/versioning/git@1.7.3.2-0.174 info.classification set Development/Source Code Management pkg:/developer/versioning/sccs@0.5.11-0.174 info.classification set Development/Source Code Management pkg:/library/perl-5/subversion@1.6.16-0.174 info.classification set Development/Source Code Management pkg:/library/java/subversion@1.6.16-0.174.0 info.classification set Development/Source Code Management pkg:/library/python-2/subversion@1.6.16-0.1 info.classification set Development/Source Code Management pkg:/developer/xopen/xcu4@0.5.11-0.174.0.0. info.classification set Development/Source Code Management pkg:/developer/quilt@0.47-0.174.0.0.0.0.504 info.classification set Development/Source Code Management pkg:/developer/versioning/cvs@1.12.13-0.174 info.classification set Development/Source Code Management pkg:/developer/versioning/mercurial@1.8.4-0
本示例说明大量重复信息会使真正需要的信息难以分辨。
以下示例使用 -o 选项只显示软件包的名称,并使用 -H 选项省略列标题。
# pkg search -o pkg.name -H ':set:info.classification:Source Code Management' developer/versioning/subversion developer/versioning/git developer/versioning/sccs library/perl-5/subversion library/java/subversion library/python-2/subversion developer/xopen/xcu4 developer/quilt developer/versioning/cvs developer/versioning/mercurial
下面的这些示例显示依赖于指定软件包的软件包。
以下示例显示了对 system/kernel/power 软件包具有 require 依赖性的软件包。如果使用 pkg contents 命令来显示 i86pc 和 system/hal 软件包的 require 类型的 depend 操作,将看到这两个软件包均列出 system/kernel/power。
$ pkg search -l -H -o pkg.name 'depend:require:system/kernel/power' system/kernel/dynamic-reconfiguration/i86pc system/hal
以下示例显示许多软件包都对 pkg:/x11/server/xorg@1.10.99 具有 exclude 依赖性。
$ pkg search -l -o pkg.name,fmri 'depend:exclude:' PKG.NAME FMRI x11/server/xorg/driver/xorg-video-ati pkg:/x11/server/xorg@1.10.99 x11/server/xorg/driver/xorg-video-intel pkg:/x11/server/xorg@1.10.99 x11/server/xvnc pkg:/x11/server/xorg@1.10.99 desktop/remote-desktop/tigervnc pkg:/x11/server/xorg@1.10.99 x11/server/xserver-common pkg:/x11/server/xorg@1.10.99 ...
Oracle Solaris 11 GUI 安装程序安装 solaris-desktop 组软件包。自动化安装程序安装中的缺省 AI 清单和文本安装程序将安装 solaris-large-server 组软件包。solaris-small-server 组软件包是可用于在服务器上安装一个较小的软件包集合的替代方法。可使用以下搜索格式显示每个组包含的软件包集合。
$ pkg search -o fmri -H '*/solaris-desktop:depend:group:' archiver/gnu-tar audio/audio-utilities ...
在本示例中,-o pkg.name 只返回在查询的 pkg_name 字段中指定的软件包的名称:
group/system/solaris-desktop
-o fmri 选项返回在 solaris-desktop 软件包中指定为具有 group 类型依赖性的软件包的 FMRI。
缺省情况下,搜索只返回可安装在该映像中的软件包。在本示例中,搜索不返回匹配软件包,而是返回指定软件包中某个操作的属性值。在本示例中,该属性值是软件包名称。该命令返回的结果数量大于类似的 pkg contents 命令返回的结果数量,因为这些搜索结果包含在指定软件包的组依赖操作中指定的所有软件包的名称,而不仅仅是可安装软件包的名称。例如,可能包含无法安装在该映像中的软件包变量。可以将该搜索的输出和列出组软件包中的所有可安装软件包中所示的 pkg contents 命令的输出进行对比。
提示 - 通常,使用 pkg contents 命令显示指定软件包的内容,使用 pkg search 命令显示匹配查询的软件包。如果您知道哪个软件包可提供您感兴趣的内容,使用 pkg contents 命令。