JavaScript is required to for searching.
跳过导航链接
退出打印视图
映像包管理系统手册页     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

用户命令

packagemanager(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkglint(1)

pkgmerge(1)

pkgmogrify(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pm-updatemanager(1)

系统管理命令

标准、环境和宏

pkgrecv

- 映像包管理系统内容检索实用程序

用法概要

/usr/bin/pkgrecv [-s src_uri] [-a] [-d (path|dest_uri)]
    [-c cache_dir] [-kr] [-m match] [-n] [--raw]
    [--key keyfile --cert certfile] (fmri|pattern) ...
/usr/bin/pkgrecv [-s src_uri] --newest

描述

pkgrecv 允许用户检索 pkg(5) 系统信息库或软件包归档文件中的软件包。pkgrecv 还可以选择性地将检索到的软件包重新发布到另一个软件包系统信息库中或者对其进行归档。缺省情况下,会以 pkg(1)、pkg.depotd(1M) 以及软件包发布工具可使用的软件包系统信息库格式检索软件包。

完成 pkgrecv 操作后,在系统信息库上运行 pkgrepo refreshpkgrepo rebuild 以构建搜索索引。

选项

支持以下选项:

-a

将检索的软件包数据存储在 -d 指定的位置中的 pkg(5) 归档文件中。该文件不能已存在。此选项仅可以与基于文件系统的目标一起使用。尽管不要求,但还是强烈建议使用文件扩展名 .p5p(例如: archive.p5p)。该选项不能与 --raw 结合使用。

-c cache_dir

将用于缓存已下载内容的目录的路径。如果没有提供此目录,客户机将自动选择一个高速缓存目录。如果下载中断并且已自动选择了一个高速缓存目录,可使用该选项继续执行下载。有关如何设置用于存储临时数据的位置的详细信息,请参见下面的“环境变量”部分。

-d path_or_uri

要将软件包重新发布到的目标的文件系统路径或 URI。如果指定了 -a,则目标为尚不存在的新软件包归档文件。否则,目标必须是已存在的软件包系统信息库。可以使用 pkgrepo(1) 创建新的系统信息库。

-h

显示用法消息。

-k

使检索的软件包内容保持压缩状态。重新发布时会忽略该选项。压缩的软件包内容不得与 pkgsend(1) 一起使用。

-m match

使用以下值控制匹配行为:

all-timestamps

包括所有匹配的时间戳,而不仅仅是最新的时间戳(意味着 all-versions)。

all-versions

包括所有匹配的版本,而不仅仅是最新的版本。

-n

执行试运行,不进行任何更改。

-r

递归检索提供的软件包列表的所有依赖项。

-s src_repo_uri

URI 代表要从中接收软件包数据的 pkg(5) 系统信息库或软件包归档文件的位置。

--cert file

指定用于从 HTTPS 系统信息库进行软件包检索的客户机 SSL 证书文件。

--key file

指定用于从 HTTPS 系统信息库进行软件包检索的客户机 SSL 密钥文件。

--newest

列出指定系统信息库中提供的最新版本的软件包,然后退出。(忽略 -s 以外的所有其他选项。)

--raw

按主干和版本,检索一组目录结构中的原始软件包数据并将其存储在 -d 指定的位置中。此选项仅可以与基于文件系统的目标一起使用。此软件包数据可用于方便地修改和重新发布软件包,也许通过更正文件内容,也许通过提供附加的软件包元数据。该选项不能与 -a 结合使用。

示例

示例 1 列出最新的软件包

列出名为 test 的系统上的系统信息库中的最新软件包。

$ pkgrecv -s http://test --newest
pkg://solaris/system/library/c++-runtime@0.5.11,5.11-0.174.0.0.0.0.0:20110921T190358Z
pkg://solaris/system/library/freetype-2@2.4.8,5.11-0.175.1.0.0.7.1234:20120109T215840Z
pkg://solaris/system/library/math@0.5.11,5.11-0.174.0.0.0.0.0:20110921T190432Z

示例 2 检索原始软件包数据

以能够与 pkgsend publish 结合使用的合适格式从示例 1 中接收 c++-runtime 软件包。

$ pkgrecv -s http://test \
-d /local/repo --raw \
c++-runtime@0.5.11,5.11-0.174.0.0.0.0.0:20110921T190358Z
Processing packages for publisher solaris ...
Retrieving and evaluating 1 package(s)...
PROCESS                                         ITEMS     GET (MB)    SEND (MB)
Completed                                         1/1      3.5/3.5      0.0/0.0
$ ls /local/repo
pkg5.repository  publisher  system%2Flibrary%2Fc%2B%2B-runtime

示例 3 从系统中检索依赖项

从名为 test 的系统中接收软件包 editor/vim 及其所有依赖项。

$ pkgrecv -s http://test -d /local/repo -r editor/vim

示例 4 检索所有版本

从名为 test 的系统中接收软件包 editor/vim 的所有版本。

$ pkgrecv -s http://test -d /local/repo -m all-versions editor/vim
Processing packages for publisher solaris ...
Retrieving and evaluating 2 package(s)...
PROCESS                                        ITEMS     GET (MB)    SEND(MB)
Completed                                        2/2    16.7/16.7    44.9/44.9

示例 5 检索所有版本并远程重新发布

从名为 test 的系统中接收软件包 library/zlib 的所有版本,然后将其重新发布到名为 remote 的系统上的远程系统信息库中。

$ pkgrecv -s http://test -d http://remote:10000 -m all-versions library/zlib

示例 6 从系统信息库中检索依赖项

从位于 /export/repo 的系统信息库中接收软件包 editor/gnu-emacs 及其所有依赖项。

$ pkgrecv -s /export/repo -d /local/repo -r editor/gnu-emacs

示例 7 检索其他软件包

从位于 http://example.com:10000 的系统信息库中接收并非已存在的所有软件包。

$ pkgrecv -s http://example.com:10000 -d /my/pkg/repo '*'

示例 8 创建软件包归档文件

根据位于 http://example.com:10000 的系统信息库创建包含软件包 editor/gnu-emacs 及其所有依赖项的软件包归档文件。

$ pkgrecv -s http://example.com:10000 -d /my/emacs.p5p -a -r editor/gnu-emacs

示例 9 将软件包从归档文件复制到系统信息库中

将软件包归档文件中的所有软件包复制到位于 /export/repo 中的现有系统信息库。

$ pkgrecv -s /my/archive.p5p -d /export/repo '*'

环境变量

支持以下环境变量:

PKG_DEST

要将检索到的软件包保存到的目录的路径,或者要复制软件包的系统信息库或软件包归档文件的文件系统路径或 URI。

PKG_SRC

URI 或文件系统路径代表要从中检索软件包的 pkg(5) 系统信息库或软件包归档文件的位置。

TMPDIR

在程序执行期间用于存储临时数据的目录的绝对路径。如果未设置,则存储临时数据的缺省路径为 /var/tmp

退出状态

将返回以下退出值:

0

命令成功。

1

出现错误。

2

指定的命令行选项无效。

3

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

99

发生了意外的异常。

属性

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

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

另请参见

pkgrepo(1)pkgsend(1)pkg(5)

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