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

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

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

/usr/bin/pkgrepo get [-F format] [-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 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] ... or
 section/property=([value]) ...

/usr/bin/pkgrepo help

/usr/bin/pkgrepo version
描述

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

选项

支持以下选项:

--help-?

显示用法消息。

子命令

支持以下子命令:

create [--version] uri_or_path

在指定的位置创建 pkg(5) 系统信息库。 该子命令仅可以与基于文件系统的系统信息库一起使用。 使用 --version,以与指定版本兼容的格式创建系统信息库。缺省情况下,会创建版本为 4 的系统信息库。支持的版本包括:

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

add-publisher -s repo_uri_or_path publisher ...

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

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

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

; & ( ) | ^ < > \e " ' `
请参见"示例"部分。 有关可能的属性的列表以及每个属性的用途和值,请参见下面的 set 子命令。 使用 -F,指定备用输出格式。format 的唯一值是 tsv(以制表符分隔的值)。 使用 -H,忽略列表的标题。 使用 -p,显示给定发布者的属性信息。特殊值 all 显示所有发布者的属性。可以多次指定此选项。 使用 -s,对位于给定 URI 或文件系统路径的系统信息库进行操作。

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

显示系统信息库已知的软件包发布者的列表。该列表包括每个发布者的软件包数量、最后一次更新发布者的软件包数据的时间以及发布者的软件包数据的状态(例如当前是否处于正在处理状态)。 使用 -F,指定备用输出格式。format 的唯一值是 tsv(以制表符分隔的值)。 使用 -H,忽略列表的标题。 使用 -p,仅显示给定发布者的数据。如果没有提供该选项,将显示所有发布者的数据。可以多次指定此选项。 使用 -s,对位于给定 URI 或文件系统路径的系统信息库进行操作。

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

放弃在系统信息库中找到的所有目录、搜索以及其他缓存信息,然后根据系统信息库的当前内容重新创建这些信息。 使用 -p,仅对给定发布者执行操作。如果没有提供该选项或者指定了特定值 all,则对所有发布者执行操作。可以多次指定此选项。 使用 -s,对位于给定 URI 或文件系统路径的系统信息库进行操作。 使用 --no-catalog,不重新生成软件包数据。 使用 --no-index,不重新生成搜索索引。

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

将在系统信息库中找到的所有新软件包编入目录并更新所有搜索索引。这主要供延迟的发布使用(pkgsend--no-catalog --no-index 选项)。 使用 -p,仅对给定发布者执行操作。如果没有提供该选项或者指定了特定值 all,则对所有发布者执行操作。可以多次指定此选项。 使用 -s,对位于给定 URI 或文件系统路径的系统信息库进行操作。 使用 --no-catalog,不添加任何新的软件包。 使用 --no-index,不更新搜索索引。

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

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

注 -

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

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

注意 -

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

使用 -n,执行试运行而不更改软件包。在退出之前,会显示要删除的软件包的列表。 使用 -p,仅删除给定发布者的匹配软件包。如果没有提供该选项,会删除所有发布者的所有匹配软件包。可以多次指定此选项。 使用 -s,对位于给定 URI 或文件系统路径的系统信息库进行操作。

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

为系统信息库或发布者设置指定属性的值。 该子命令仅可以与基于文件系统的系统信息库一起使用。 使用 -p,仅设置给定发布者的属性数据。如果发布者尚未存在,将添加该发布者。特殊值 all 可用于设置所有发布者的属性。 使用 -s,对位于给定 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。该值指明存在多个发布者的软件包时或软件包已发布到系统信息库但未指定发布者时应当使用的发布者。

publisher/signing_ca_certs

字符串列表,包含签名 CA 证书(应当用于该发布者)的散列。

publisher/intermediate_certs

字符串列表,包含中间证书(应当用于该发布者)的散列。

对于系统信息库第 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 子命令输出中的属性保留供内部使用,不得对其进行设置。

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 /my/repository
SECTION PROPERTY VALUE
publisher prefix ""
repository version 4
$ pkgrepo get -s http://pkg.oracle.com/solaris/release/
SECTION PROPERTY VALUE
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(软件包/pkg)
接口稳定性Uncommitted(未确定)
另请参见

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

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