IPS 提供了三种不同的软件包交付方式,使用户可以安装软件包:
用户通过本地网络访问此系统信息库。发布者源是系统信息库的路径,如 /net/host1/export/ipsrepo。
用户通过 HTTP 或 HTTPS 访问此系统信息库。发布者源是一个地址,如 http://pkg.example.com/。
软件包归档文件是一个独立文件。发布者源是归档文件的路径,如 /net/host1/export/ipsarchive.p5p。
在上述每种情况中,软件包均已按照发布软件包中所述使用 pkgsend publish 命令发布。使用 pkgrecv 命令可检索现有系统信息库中的软件包或软件包归档文件,满足一般用途要求。有关更多信息,请参见 pkgrecv(1) 手册页。有关如何创建和维护一般用途的系统信息库的信息,请参见在 Oracle Solaris 11.2 中复制和创建软件包系统信息库 。
以下示例显示了如何将测试系统信息库中的新软件包交付到所设置的一般用途的本地文件系统信息库。由于此示例中的软件包非常小,因此获取和发送大小均为零。
$ pkgrecv -s my-repository -d /net/host1/export/ipsrepo mypkg Processing packages for publisher mypublisher ... Retrieving and evaluating 1 package(s)... PROCESS ITEMS GET (MB) SEND (MB) Completed 1/1 0.0/0.0 0.0/0.0
验证软件包在新系统信息库中是否存在:
$ pkgrepo info -s /net/host1/export/ipsrepo PUBLISHER PACKAGES STATUS UPDATED solaris 4455 online 2013-07-09T23:41:24.312974Z mypublisher 1 online 2013-07-22T20:57:36.951042Z $ pkgrepo list -p mypublisher -s /net/host1/export/ipsrepo PUBLISHER NAME 0 VERSION mypublisher mypkg 1.0,5.11-0:20130720T005452Z
使用相同的 pkgrecv 命令可将软件包交付到 HTTP 或 HTTPS 系统信息库。这种情况下,请将相应的 pkg/server 服务实例的 pkg/inst_root 属性值指定为 -d 参数。此系统信息库由 svc:/application/pkg/server 服务提供给用户,该服务会运行 pkg.depotd。有关更多信息,请参见 pkg.depotd(1M) 手册页。
如果该映像没有子映像(非全局区域),用户可以使用 -g 选项安装新软件包,如以下命令所示。-g 选项可将 mypublisher 发布者添加到该映像中配置的发布者列表。
$ pkg install -g /net/host1/export/ipsrepo mypkg
如果该映像具有子映像,用户必须在映像中配置 mypublisher 发布者,如以下命令所示。
$ pkg set-publisher -p /net/host1/export/ipsrepo
软件包归档文件是包含发布者信息以及该发布者提供的一个或多个软件包的独立文件。将软件包交付为软件包归档文件对无法访问软件包系统信息库的用户很方便。这些用户可以轻松地从 Web 站点下载软件包归档文件,复制到 U 盘,或刻录到 DVD 中。
pkgrecv 命令可以将软件包从软件包系统信息库添加到软件包归档文件,或将软件包从软件包归档文件添加到软件包系统信息库。将软件包从软件包归档文件添加到软件包系统信息库时,需要注意的是,软件包归档文件不包含缺省发布者前缀等系统信息库配置。大多数 pkgrepo 子命令对软件包归档文件无效。pkgrepo list 命令可处理软件包归档文件。
以下命令会创建 mypkg 软件包的一个软件包归档文件。由于此归档文件尚不存在,因此您必须指定 -a 选项。根据约定,软件包归档文件具有文件扩展名 .p5p。
$ pkgrecv -s my-repository -a -d myarchive.p5p mypkg Retrieving packages for publisher mypublisher ... Retrieving and evaluating 1 package(s)... DOWNLOAD PKGS FILES XFER (MB) SPEED Completed 1/1 3/3 0.0/0.0 782k/s ARCHIVE FILES STORE (MB) myarchive.p5p 14/14 0.0/0.0
如果该映像没有子映像(非全局区域),用户可以使用 -g 选项安装新软件包,如以下命令所示。-g 选项可将 mypublisher 发布者添加到该映像中配置的发布者列表。
$ pkg install -g myarchive.p5p mypkg
如果该映像具有子映像,用户必须在映像中配置 mypublisher 发布者,如以下命令所示。
$ pkg set-publisher -p myarchive.p5p
软件包归档文件可以在非全局区域中设置为本地发布者的源。
使用 pkgrepo 命令可列出系统信息库或归档文件中的最新可用软件包:
$ pkgrepo list -s my-repository '*@latest' PUBLISHER NAME O VERSION mypublisher mypkg 1.0,5.11-0:20130720T005452Z $ pkgrepo list -s myarchive.p5p '*@latest' PUBLISHER NAME O VERSION mypublisher mypkg 1.0,5.11-0:20130720T005452Z
此输出可用于构建脚本,以便使用给定系统信息库中所有软件包的最新版本创建归档文件。