跳过导航链接 | |
退出打印视图 | |
手册页第 1 部分:用户命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 映像包管理系统内容检索实用程序
/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、pkg.depotd 以及软件包发布工具可使用的软件包系统信息库格式检索软件包。
完成 pkgrecv 操作后,在系统信息库上运行 pkgrepo refresh 或 pkgrepo rebuild 以构建搜索索引。
支持以下选项:
显示用法消息。
将检索的软件包数据存储在 -d 指定的位置中的 pkg(5) 归档文件中。该文件不能已存在。此选项仅可以与基于文件系统的目标一起使用。尽管不要求,但还是强烈建议使用文件扩展名 .p5p(例如: archive.p5p)。该选项不能与 --raw 结合使用。
指定将用于缓存已下载内容的目录的路径。如果没有提供此目录,客户机将自动选择一个高速缓存目录。如果下载中断并且已自动选择了一个高速缓存目录,可使用该选项继续执行下载。有关如何设置用于存储临时数据的位置的详细信息,请参见下文的“环境变量”部分。
指定要将软件包重新发布到的目标的文件系统路径或 URI。如果指定了 -a,则目标为尚不存在的新软件包归档文件。否则,目标必须是已存在的软件包系统信息库。可以使用 pkgrepo 创建新的系统信息库。
使检索的软件包内容保持压缩状态。重新发布时会忽略该选项。压缩的软件包内容不得与 pkgsend 一起使用。
使用以下值控制匹配行为:
包括所有匹配的时间戳,而不仅仅是最新的时间戳(意味着 all-versions)。
包括所有匹配的版本,而不仅仅是最新的版本。
执行试运行,不进行任何更改。
递归检索提供的软件包列表的所有依赖项。
指定一个 URI,代表要从中接收软件包数据的 pkg(5) 系统信息库或软件包归档文件的位置。
指定用于从 HTTPS 系统信息库进行软件包检索的客户机 SSL 证书文件。
指定用于从 HTTPS 系统信息库进行软件包检索的客户机 SSL 密钥文件。
列出指定系统信息库中提供的最新版本的软件包,然后退出。(忽略 -s 以外的所有其他选项。)
按主干和版本,检索一组目录结构中的原始软件包数据并将其存储在 -d 指定的位置中。此选项仅可以与基于文件系统的目标一起使用。此软件包数据可用于方便地修改和重新发布软件包,也许通过更正文件内容,也许通过提供附加的软件包元数据。该选项不能与 -a 结合使用。
示例 1 列出最新的软件包
列出名为 test 的系统上的系统信息库中的最新软件包。
$ pkgrecv -s http://test --newest pkg://solaris/system/library/c++-runtime@0.5.11,5.11-0.175.0.0.0.2.1:20120921T190358Z 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.175.0.0.0.2.1:20120921T190432Z
示例 2 检索原始软件包数据
以能够与 pkgsend publish 结合使用的合适格式从示例 1 中接收 c++-runtime 软件包。
$ pkgrecv -s http://test \ -d /local/repo --raw \ c++-runtime@0.5.11,5.11-0.175.0.0.0.2.1:20120921T190358Z 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://pkg.oracle.com/solaris/release/ 的系统信息库中将并非已存在的所有软件包和所有已更改内容接收到位于 /export/repoSolaris11 的系统信息库。
$ pkgrecv -s http://pkg.oracle.com/solaris/release/ \ -d /export/repoSolaris11 -m all-timestamps '*'
将位于 http://pkg.oracle.com/solaris/support/ 的安全系统信息库中的所有尚不存在的软件包和所有更改内容接收到位于 /export/repoSolaris11 的系统信息库。
$ pkgrecv -s http://pkg.oracle.com/solaris/support/ \ -d /export/repoSolaris11 -m all-timestamps \ --key /var/pkg/ssl/Oracle_Solaris_11_Support.key.pem \ --cert /var/pkg/ssl/Oracle_Solaris_11_Support.certificate.pem '*'
示例 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 '*'
支持以下环境变量:
要将检索到的软件包保存到的目录的路径,或者要复制软件包的系统信息库或软件包归档文件的文件系统路径或 URI。
URI 或文件系统路径代表要从中检索软件包的 pkg(5) 系统信息库或软件包归档文件的位置。
在程序执行期间用于存储临时数据的目录的绝对路径。如果未设置,则存储临时数据的缺省路径为 /var/tmp。
将返回以下退出值:
命令成功。
出现错误。
指定的命令行选项无效。
请求了多项操作,但只有一部分操作成功。
发生了意外的异常。
有关下列属性的说明,请参见 attributes(5):
|
http://hub.opensolaris.org/bin/view/Project+pkg/