可以向系统信息库添加发布者。例如,可以在一个系统信息库中维护 solaris、ha-cluster 和 solarisstudio 软件包。
如果添加定制软件包,请用定制发布者名称发布这些软件包。不要作为现有发布者(例如 solaris)发布定制软件包。如果发布未指定发布者的软件包,这些软件包将添加给系统信息库的缺省发布者。请将具有正确缺省发布者的定制软件包发布到测试系统信息库。然后使用 pkgrecv 命令将这些软件包及其发布者信息添加到生产系统信息库。有关说明,请参见在 Oracle Solaris 11.2 中使用映像包管理系统打包和交付软件 中的发布软件包。
在以下示例中,ISVproducts.p5p 软件包归档文件中的 isvpub 发布者数据以及所有软件包将添加到本地系统信息库。软件包归档文件是包含发布者信息以及该发布者提供的一个或多个软件包的文件。请参见在 Oracle Solaris 11.2 中使用映像包管理系统打包和交付软件 中的交付为软件包归档文件。大多数 pkgrepo 操作不可用于软件包归档文件。软件包归档文件包含软件包但不包含系统信息库配置。不过,pkgrepo list 和 pkgrepo contents 命令可处理软件包归档文件。pkgrepo contents 命令将在检查系统信息库中的软件包中讨论。
在 pkgrepo list 输出中将显示发布者,因为其不是此映像中按搜索顺序排在第一位的发布者。
$ pkgrepo -s /tmp/ISVproducts.p5p list PUBLISHER NAME O VERSION isvpub isvtool 1.1,5.11:20131120T021902Z isvpub isvtool 1.0,5.11:20131120T010105Z
以下 pkgrecv 命令从源系统信息库中检索所有软件包。如果列出要检索的软件包的名称,或者指定 '*' 以外的模式,则应指定 -r 选项以确保检索所有必需的依赖性软件包。
$ pkgrecv -s /tmp/ISVproducts.p5p -d /export/IPSpkgrepos/Solaris '*' Processing packages for publisher isvpub ... Retrieving and evaluating 2 package(s)... PROCESS ITEMS GET (MB) SEND (MB) Completed 2/2 0.0/0.0 0.0/0
更改系统信息库的内容后,刷新系统信息库并重新启动为此系统信息库配置的所有软件包库 (depot) 服务器服务实例。
$ pkgrepo -s /export/IPSpkgrepos/Solaris refresh -p isvpub Initiating repository refresh. $ svcadm refresh pkg/server:solaris $ svcadm restart pkg/server:solaris
以下 pkgrepo info 命令显示一个软件包,因为检索的两个软件包是同一个软件包的不同版本。pkgrepo list 命令则显示两个软件包。
$ pkgrepo -s /export/IPSpkgrepos/Solaris info PUBLISHER PACKAGES STATUS UPDATED solaris 4768 online 2014-01-02T19:19:06.983979Z isvpub 1 online 2014-03-20T23:24:37.196773Z $ pkgrepo -s /export/IPSpkgrepos/Solaris list -p isvpub PUBLISHER NAME O VERSION isvpub isvtool 1.1,5.11:20131120T021902Z isvpub isvtool 1.0,5.11:20131120T010105Z
使用 pkg set-publisher 命令添加 isvpub 发布者的新系统信息库位置。
如果可以通过 HTTP 接口访问此系统信息库,并且您使用浏览器查看此系统信息库的内容,则可以通过指定在该位置的发布者来查看此新软件包。例如,可以指定 http://localhost:81/isvpub/。