pkgrepo.1 revision 2825
te
Copyright (c) 2007, 2012, Oracle and/or its affiliates.All rights reserved.
pkgrepo 1 "2012 年 6 月 22 日" "SunOS 5.11" "用户命令"
名称
pkgrepo - 映像包管理系统的系统信息库管理实用程序
用法概要

/usr/bin/pkgrepo create [--version ver] uri_or_path

/usr/bin/pkgrepo add-publisher -s repo_uri_or_path publisher ...

/usr/bin/pkgrepo get [-F format] [-H] [-p publisher ...]
 -s repo_uri_or_path [section/property ...]

/usr/bin/pkgrepo info [-F format] [-H] [-p publisher ...]
 -s repo_uri_or_path

/usr/bin/pkgrepo list [-F format] [-H] [-p publisher ...]
 -s repo_uri_or_path [pkg_fmri_pattern ...]

/usr/bin/pkgrepo rebuild [-p publisher ...]
 -s repo_uri_or_path [--no-catalog] [--no-index]

/usr/bin/pkgrepo refresh [-p publisher ...]
 -s repo_uri_or_path [--no-catalog] [--no-index]

/usr/bin/pkgrepo remove [-n] [-p publisher ...]
 -s repo_uri_or_path pkg_fmri_pattern ...

/usr/bin/pkgrepo set [-p publisher] -s repo_uri_or_path
 section/property=[value]

/usr/bin/pkgrepo set [-p publisher] -s repo_uri_or_path
 section/property=([value]) ...

/usr/bin/pkgrepo help

/usr/bin/pkgrepo version
描述

通过 pkgrepo 可以创建和管理 pkg(5) 软件包系统信息库。软件包系统信息库是一组预定义的目录和文件,允许 pkg 和发布客户机(例如 pkgsend pkgrecv)存储和检索软件包数据。此外,当需要对软件包系统信息库进行基于网络的访问时,pkg.depotd 可以提供对该系统信息库的客户机访问权限,以存储和/或检索软件包数据。

选项

支持以下选项:

-?

--help

显示用法消息。

子命令

支持以下子命令:

pkgrepo create [--version ver] uri_or_path

在指定的位置创建 pkg(5) 系统信息库。 该子命令仅可以与基于文件系统的系统信息库一起使用。

--version

使用与指定版本兼容的格式创建系统信息库。缺省情况下,会创建版本为 4 的系统信息库。支持的版本包括:

3

支持为单个发布者存储软件包,目录版本为 1 ,搜索版本为 1。

4

支持为多个发布者存储软件包,目录版本为 1 ,搜索版本为 1。

pkgrepo add-publisher -s repo_uri_or_path publisher ...

将指定的发布者添加到系统信息库中。新的发布者没有软件包或内容。 该子命令仅可以与基于第 4 版文件系统的系统信息库一起使用。

pkgrepo get [-F format] [-H] [-p publisher ...] -s repo_uri_or_path [ section/property ...]

显示系统信息库或其发布者的属性信息。 缺省情况下,会在单独的行中显示每个属性及其值。空的 ASCII 字符串值用一对双引号 ("") 表示。ASCII 字符串值中的以下 Bourne shell 元字符以及换行符、空格符和制表符都必须使用反斜杠 (\e) 进行转义:

; & ( ) | ^ < > \e " ' `
有关显示发布者和系统信息库属性的示例,请参见“示例”部分。 有关属性列表以及每个属性的用途和值,请参见下文的 set 子命令。

-F format

指定备用输出格式。format 的值可以是 tsv(以制表符分隔的值)、json(单行 JavaScript 对象表示法)或 json-formatted(格式易于阅读的 JavaScript 对象表示法)。

-H

在列出时省略标题。

-p publisher

显示给定发布者的属性信息。特殊值 all 显示所有发布者的属性。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

section/property

仅显示指定属性的值,例如 publisher/prefixrepository/version。有关完整的属性列表,请参见 set 子命令。

pkgrepo info [-F format] [-H] [-p publisher ...] -s repo_uri_or_path

显示系统信息库已知的软件包发布者的列表。该列表包括每个发布者的软件包数量、最后一次更新发布者的软件包数据的时间以及发布者的软件包数据的状态(例如当前是否处于正在处理状态)。

-F format

指定备用输出格式。format 的值可以是 tsv(以制表符分隔的值)、json(单行 JavaScript 对象表示法)或 json-formatted(格式易于阅读的 JavaScript 对象表示法)。

-H

在列出时省略标题。

-p publisher

仅显示给定发布者的数据。如果没有提供该选项,将显示所有发布者的数据。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

pkgrepo list [-F format] [-H] [-p publisher ...] -s repo_uri_or_path [ pkg_fmri_pattern ...]

列出 repo_uri_or_path 系统信息库中与指定 pkg_fmri_pattern 模式匹配的软件包。如果未指定任何模式,将列出系统信息库中的所有软件包。 在缺省输出中,第一列包含软件包发布者的名称。第二列包含软件包的名称。第三列是显示软件包状态的标志。状态列中的 o 值表示软件包已过时。状态列中的 r 值表示已重命名软件包,但格式已过时。第四列包含软件包的发行版本和分支版本。有关发行版本和分支版本的信息,请参见 pkg(5)。

-F format

指定备用输出格式。format 的值可以是 tsv(以制表符分隔的值)、json(单行 JavaScript 对象表示法)或 json-formatted(格式易于阅读的 JavaScript 对象表示法)。

-H

在列出时省略标题。

-p publisher

仅显示给定发布者的软件包。如果没有提供该选项,将显示所有发布者的软件包。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

pkgrepo rebuild [-p publisher ...] -s repo_uri_or_path [- -no-catalog] [--no-index]

放弃在系统信息库中找到的所有目录、搜索以及其他缓存信息,然后根据系统信息库的当前内容重新创建这些信息。

-p publisher

仅针对给定发布者执行操作。如果没有提供该选项或者指定了特定值 all,则对所有发布者执行操作。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

--no-catalog

不重新生成软件包数据。

--no-index

不重新生成搜索索引。

pkgrepo refresh [-p publisher ...] -s repo_uri_or_path [- -no-catalog] [--no-index]

将在系统信息库中找到的所有新软件包编入目录并更新所有搜索索引。这主要供延迟的发布使用(pkgsend--no-catalog --no-index 选项)。

-p publisher

仅针对给定发布者执行操作。如果没有提供该选项或者指定了特定值 all,则对所有发布者执行操作。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

--no-catalog

不添加任何新软件包。

--no-index

不更新搜索索引。

pkgrepo remove [-n] [-p publisher ...] -s repo_uri_or_path pkg_fmri_pattern ...

从系统信息库中删除与指定模式匹配的软件包,其中包括这些软件包引用的且其他任何软件包没有使用的所有文件。

注 -

删除关联发布者的所有搜索索引数据。

该子命令仅可以与基于文件系统的系统信息库一起使用。

注意 -

此操作不可逆并且不得在其他客户机正在访问系统信息库时使用,因为这样会使得它们在执行检索操作期间出现故障。

-n

试运行操作而不进行软件包更改。在退出之前,会显示要删除的软件包的列表。

-p publisher

仅删除给定发布者的匹配软件包。如果没有提供该选项,会删除所有发布者的所有匹配软件包。可以多次指定此选项。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

pkgrepo set [-p publisher] -s repo_uri_or_path section/property=[value] ...

set [-p publisher] - s repo_uri_or_path section/property =([value]) ...

为系统信息库或发布者设置指定属性的值。 该子命令仅可以与基于文件系统的系统信息库一起使用。

-p publisher

仅为给定发布者设置属性数据。如果发布者尚未存在,将添加该发布者。特殊值 all 可用于设置所有发布者的属性。

-s repo_uri_or_path

对位于给定 URI 或文件系统路径的系统信息库进行操作。

可以使用以下格式之一指定属性和值:

section/property=

清除属性值。

section/property= value

将属性值替换为给定值。

section/property=( value1 value2 valueN)

将属性值替换为值列表。

对于系统信息库第 3 和 4 版,可以为系统信息库设置以下属性:

publisher/prefix

代表缺省发布者名称的字符串。第一个字符必须是 a-z、A-Z 或 0-9。该字符串的剩余部分只能包含字符 0-9、-、.、a-z 以及 A-Z。该值指示存在多个发布者的软件包时或者将软件包发布到系统信息库但没有指定发布者时,应当使用的发布者。

对于系统信息库第 3 和 4 版,可以为系统信息库中的各发布者设置以下属性:

publisher/alias

字符串,代表在使用系统信息库的配置数据添加发布者时客户机应当使用的缺省别名。第一个字符必须是 a-z、A-Z 或 0-9。该字符串的剩余部分只能包含字符 0-9、-、.、a-z 以及 A-Z。

repository/collection_type

可以使用值 coresupplemental ,以表明此系统信息库中提供的软件包类型。 core 类型表明系统信息库包含该库中的软件包所声明的所有依赖项。core 类型主要用于操作系统的系统信息库。 supplemental 类型表明系统信息库包含依赖于另一个系统信息库中的软件包或要与另一个系统信息库中软件包一起使用的软件包。

repository/description

纯文本段落,描述系统信息库的用途和内容。

repository/detailed_url

URI,代表提供更多有关系统信息库信息的文档的位置(例如网页)。

repository/legal_uris

文档的位置列表 (URI),提供关于系统信息库的其他法律信息。

repository/mirrors

系统信息库的位置列表 (URI),这些系统信息库包含系统信息库的软件包内容的副本但不包含软件包元数据。

repository/name

纯文本字符串,包含系统信息库的名称。

repository/origins

系统信息库的位置列表 (URI),这些系统信息库包含该系统信息库的软件包元数据和内容的完整副本。

repository/refresh_seconds

整数值,表示客户机在每次更新检查之后和检查系统信息库以查找更新的软件包数据之前应当等待的秒数。

repository/registration_uri

代表资源位置的 URI,必须使用该位置才能获取访问系统信息库的证书。注册网页就是一个示例。

repository/related_uris

系统信息库的位置列表 (URI),这些系统信息库包含用户可能感兴趣的软件包。

此处没有记录但列在 get 子命令输出中的属性保留供内部使用,不得对其进行设置。

pkgrepo help

显示用法消息。

pkgrepo version

显示一个用于唯一标识 pkg(5) 系统版本的字符串。由 version 操作生成的值不能进行排序,并且对于在不平等情况下的比较而言是不安全的。

示例

示例 1 创建软件包系统信息库

$ pkgrepo create /my/repository

示例 2 显示信息

显示发布者摘要以及系统信息库中软件包的数量。

$ pkgrepo info -s /my/repository
PUBLISHER PACKAGES STATUS UPDATED
example.com 5 online 2011-07-22T18:09:09.769106Z
$ pkgrepo info -s http://pkg.oracle.com/solaris/release/
PUBLISHER PACKAGES STATUS UPDATED
solaris 3941 online 2010-11-12T19:24:25.967246Z

示例 3 重新生成目录和搜索数据

重新生成系统信息库的目录和搜索数据。

$ pkgrepo rebuild -s /my/repository

示例 4 刷新目录和搜索数据

刷新系统信息库的目录和搜索数据。

$ pkgrepo refresh -s /my/repository
$ pkgrepo refresh -s http://example.com/repository

示例 5 显示所有系统信息库属性

$ pkgrepo get -s /export/repoSolaris11
SECTION PROPERTY VALUE
publisher prefix solaris
repository description Local\e copy\e of\e the\e Oracle\e Solaris\e 11\e repository
repository name Oracle\e Solaris\e 11
repository version 4
$ pkgrepo get -s http://pkg.oracle.com/solaris/release/
SECTION PROPERTY VALUE
deployment content s11_11-11
deployment pubdate 20111102T222051Z
publisher prefix solaris
repository version 4

示例 6 显示所有发布者属性

$ pkgrepo get -s http://pkg.oracle.com/solaris/release/ -p all
PUBLISHER SECTION PROPERTY VALUE
solaris publisher alias
solaris publisher prefix solaris
solaris repository collection-type core
solaris repository description This\e repository\e serves\e the\e Oracle\e
Solaris\e 11\e Package\e repository.
solaris repository legal-uris ()
solaris repository mirrors (http://pkg-cdn1.oracle.com/solaris.release/)
solaris repository name Oracle\e Solaris\e 11\e Package\e Repository
solaris repository origins ()
solaris repository refresh-seconds
solaris repository registration-uri ""
solaris repository related-uris ()

示例 7 设置缺省发布者

$ pkgrepo set -s /my/repository publisher/prefix=example.com

示例 8 设置发布者属性

$ pkgrepo set -s /my/repository -p example.com \e
repository/origins=http://example.com/repository

示例 9 将新的发布者添加到系统信息库中

$ pkgrepo add-publisher -s /my/repository example.com
退出状态

将返回以下退出值:

0

命令成功。

1

出现错误。

2

指定的命令行选项无效。

3

请求了多项操作,但只有一部分操作成功。

4

没有进行更改时,无需执行任何操作。

99

发生了意外的异常。

属性

有关下列属性的说明,请参见 attributes(5):

属性类型属性值
可用性package/pkg
接口稳定性Uncommitted(未确定)
另请参见

pkg(1)、pkgrecv(1)、pkgsend(1)、pkg.depotd(1M)、pkg(5)

http://hub.opensolaris.org/bin/view/Project+pkg/