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.  获取有关软件包的信息

显示软件包安装状态信息

显示软件包描述或许可证

显示软件包清单中的信息

列出软件包安装的文件

列出组软件包中的所有可安装软件包

显示许可证要求

搜索软件包

确定提供特定文件的软件包

显示哪些软件包提供特定的 SMF 服务

按类别列出软件包

显示依赖软件包

列出组软件包中的所有软件包

4.  安装和更新软件包

5.  配置已安装的映像

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

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

搜索软件包

可使用 pkg search 命令搜索数据与指定模式匹配的软件包。

/usr/bin/pkg search [-HIaflpr] [-o attribute ...] [-s  repo_uri] query

pkg contents 命令一样,pkg search 命令检查软件包的内容。pkg contents 命令返回内容,而 pkg search 命令返回与查询匹配的软件包的名称。

缺省情况下,会将 query 解释为要精确匹配的一组词条(但不区分大小写)。可使用 -I 选项指定区分大小写的搜索。在查询词条中可以使用 ? 和 * 通配符。可使用单引号或双引号搜索短语。当使用通配符或引号时,请务必考虑所用的 shell。

可以指定多个查询词条。缺省情况下,多个词条以 AND 连接。可以使用 OR 显式连接两个词条。

可以按以下结构化形式表达查询:

pkg_name:action_name:index:token

对缺少的字段使用隐式通配符。pkg_nametoken 字段可以包含显式通配符。action_nameindex 值必须完全匹配。action_name 的值是某个操作的名称。index 的值是该操作的某个属性的名称。有关软件包操作和属性的列表,请参见 pkg(5) 手册页中的“操作”。并非所有属性都是可搜索的。例如,modefile 操作的一个属性,但是 mode 不是 index 的有效值。index 的某些值是从其他属性派生的值。例如,index 可以是 basename,它是 filedir 操作的 path 属性的最后一个组成部分。有用的 index 值包括,对应于 filedir 操作的 basenamepath、对应于 depend 操作的依赖性类型(例如 requiregroup),以及对应于驱动程序操作的 driver_namealias

通常,将 token 的值与 index 所指定的属性的值进行对比。例如,在下述部分 driver 操作中,可以为 index 指定属性名称 alias,可以为 token 指定 pci108e

driver alias=pci108e,1647 alias=pci108e,16a7

set 操作的语法稍有不同。set 操作的两个属性为 namevalue。在这种情况下,index 的值是 name 属性的值,并且会将 token 的值与匹配的 value 属性的值进行对比。例如,在下述部分 set 操作中,可以为 index 指定 pkg.summary,可以为 token 指定 Broadcom

set name=pkg.summary value="Broadcom 57xx 1GbE NIC Driver"

set 操作 name 属性的一些明确定义的值包括 pkg.fmriinfo.classificationpkg.descriptionpkg.summary。请参见 pkg(5) 手册页中的“Set 操作”。

缺省情况下,搜索与为此映像配置的所有发布者关联的系统信息库。可使用 -l 选项仅搜索安装于此映像中的软件包。可使用 -s 选项指定要搜索的系统信息库的 URI。

缺省情况下,仅显示匹配的当前安装的软件包版本或新软件包版本。可使用 -f 选项显示所有匹配的版本。

缺省情况下,将显示所有匹配操作的结果,这样一个软件包可产生多行结果。可使用 -p 选项使每个匹配的软件包只列出一次。

确定提供特定文件的软件包

以下示例显示 libpower 库来自 system/kernel/power 软件包。

$ pkg search -Hlo pkg.name /lib/libpower.so.1
system/kernel/power
$ pkg search -lo path,pkg.name libpower.so.1
PATH              PKG.NAME
lib/libpower.so.1 system/kernel/power
$ pkg search -Hlo path,pkg.name basename:libpower.so.1
lib/libpower.so.1 system/kernel/power
$ pkg search -Hlo path,pkg.name 'path:*libpower.so.1'
lib/libpower.so.1 system/kernel/power

显示哪些软件包提供特定的 SMF 服务

要显示哪个软件包提供了特定的 SMF 服务,请将该服务的名称作为 org.opensolaris.smf.fmri 属性的值进行搜索。

$ pkg search -o value,pkg.name 'org.opensolaris.smf.fmri:*network/http*'
VALUE                                                 PKG.NAME
['svc:/network/http', 'svc:/network/http:apache22']   web/server/apache-22
['svc:/network/http', 'svc:/network/http:tomcat6']    web/java-servlet/tomcat
['svc:/network/http', 'svc:/network/http:squid']      web/proxy/squid
['svc:/network/http', 'svc:/network/http:lighttpd14'] web/server/lighttpd-14

在这种情况下,每个属性都具有两个值:具有指定实例名称的服务名称和不具有指定实例名称的服务名称。以下示例说明如何在软件包清单中指定此属性:

set name=org.opensolaris.smf.fmri value=svc:/network/http value=svc:/network/http:apache22

按类别列出软件包

以下示例找出了 info.classification 属性值中含有 "Source Code Management" 的所有软件包。

$ pkg search 'info.classification:source code management'
INDEX               ACTION VALUE                              PACKAGE
info.classification set    Development/Source Code Management pkg:/developer/versioning/sccs@0.5.11-0.175
info.classification set    Development/Source Code Management pkg:/developer/xopen/xcu4@0.5.11-0.175.1.0.
info.classification set    Development/Source Code Management pkg:/developer/versioning/git@1.7.9.2-0.175
info.classification set    Development/Source Code Management pkg:/developer/versioning/mercurial-27@2.2.
info.classification set    Development/Source Code Management pkg:/library/python-2/subversion@1.7.5-0.17
info.classification set    Development/Source Code Management pkg:/developer/versioning/mercurial-26@2.2.
info.classification set    Development/Source Code Management pkg:/library/java/subversion@1.7.5-0.175.1.
info.classification set    Development/Source Code Management pkg:/developer/quilt@0.60-0.175.1.0.0.21.0
info.classification set    Development/Source Code Management pkg:/developer/versioning/cvs@1.12.13-0.175
info.classification set    Development/Source Code Management pkg:/developer/versioning/subversion@1.7.5-
info.classification set    Development/Source Code Management pkg:/developer/versioning/mercurial@2.2.1-0
info.classification set    Development/Source Code Management pkg:/library/perl-5/subversion@1.7.5-0.175.

本示例说明大量重复信息会使真正需要的信息难以分辨。

以下示例使用 -o 选项只显示软件包的名称,并使用 -H 选项省略列标题。

$ pkg search -Ho pkg.name 'info.classification:source code management'
developer/versioning/sccs
developer/xopen/xcu4
developer/versioning/git
developer/versioning/mercurial-27
library/python-2/subversion
developer/versioning/mercurial-26
library/java/subversion
developer/quilt
developer/versioning/cvs
developer/versioning/subversion
developer/versioning/mercurial
library/perl-5/subversion

显示依赖软件包

下面的这些示例显示了依赖于指定软件包的软件包。

以下示例显示了对 system/kernel/power 软件包具有 require 依赖性的软件包。如果使用 pkg contents 命令来显示 i86pcsystem/hal 软件包的 require 类型的 depend 操作,将看到这两个软件包均列出 system/kernel/power

$ pkg search -Hlo pkg.name require:system/kernel/power
system/kernel/dynamic-reconfiguration/i86pc
system/hal

以下示例显示许多软件包都对 pkg:/x11/server/xorg@1.12.99 具有 exclude 依赖性。

$ pkg search -lo pkg.name,fmri 'depend:exclude:*xorg*'
PKG.NAME                                     FMRI
x11/server/xvnc                              pkg:/x11/server/xorg@1.12.99
x11/server/xorg                              pkg:/x11/server/xorg@1.12.99
x11/server/xorg/driver/xorg-video-mga        pkg:/x11/server/xorg@1.12.99
x11/server/xorg/driver/xorg-video-vesa       pkg:/x11/server/xorg@1.12.99
x11/server/xorg/driver/xorg-input-vmmouse    pkg:/x11/server/xorg@1.12.99 
...

列出组软件包中的所有软件包

Oracle Solaris 11 GUI 安装程序安装 solaris-desktop 组软件包。文本安装程序和自动化安装程序安装中的缺省 AI 清单将安装 solaris-large-server 组软件包。非全局区域的缺省安装清单安装 solaris-small-server 组软件包。solaris-small-server 组软件包也是可用于在服务器上安装一个较小的软件包集合的替代方法。可使用以下搜索格式显示每个组包含的软件包集合。

$ pkg search -Hfo fmri '*/solaris-large-server:depend:group:*'
archiver/gnu-tar
compress/bzip2
...
text/texinfo
web/wget

在本示例中,-o pkg.name 只返回在查询的 pkg_name 字段中指定的软件包的名称:

group/system/solaris-desktop

-o fmri 选项返回在 solaris-large-server 软件包中指定为具有 group 类型依赖性的软件包的 FMRI。

缺省情况下,搜索只返回可安装在该映像中的软件包。在本示例中,搜索不返回匹配软件包,而是返回指定软件包中某个操作的属性值。在本示例中,该属性值是软件包名称。该命令返回的结果数量大于类似的 pkg contents 命令返回的结果数量,因为这些搜索结果包含在指定软件包的 group depend 操作中指定的所有软件包的名称,而不仅仅是可安装软件包的名称。例如,可能包含无法安装在该映像中的软件包变量。可以将该搜索的输出和列出组软件包中的所有可安装软件包中所示的 pkg contents 命令的输出进行对比。


提示 - 通常,使用 pkg contents 命令显示指定软件包的内容,使用 pkg search 命令显示匹配查询的软件包。如果您知道哪个软件包可提供您感兴趣的内容,使用 pkg contents 命令。