pkg:/entire incorporation 软件包控制可在映像中安装的核心操作系统软件包的版本。要控制系统升级,请创建将 pkg:/entire 软件包的某个特定版本指定为 incorporate 依赖项的软件包。
以下示例显示了一个名为 upgradectrl.p5m、控制可安装的 pkg:/entire 软件包版本的定制 incorporation 软件包清单。此清单中的部分设置如下所述。
set name=pkg.fmri value=upgradectrl@1.0 set name=pkg.summary value="Incorporation to constrain the version of the OS" set name=pkg.description value="This package controls the version of \ pkg://solaris/entire that can be installed." set name=info.classification value="org.opensolaris.category.2008:Meta Packages/Incorporations" set name=pkg.depend.install-hold value=core-os set name=variant.opensolaris.zone value=global value=nonglobal set name=variant.arch value=sparc value=i386 depend fmri=feature/package/dependency/self type=parent variant.opensolaris.zone=nonglobal depend fmri=pkg://solaris/entire type=require depend fmri=pkg://solaris/entire@0.5.11,5.11-0.175.1.0 type=incorporate
如果用户输入 pkg update upgradectrl 命令,也会自动更新 pkg:/entire 软件包。
该软件包可安装到全局和非全局区域。另请参见对 parent 依赖项的说明。
该软件包可安装在 SPARC 和 x86 系统上。
只有已安装在全局区域中时,才能将该软件包安装到非全局区域中。
仅当已安装或可在该操作中安装 pkg://solaris/entire 软件包时,才能安装 upgradectrl 软件包。
必须安装 pkg://solaris/entire 软件包的指定版本。取决于指定的精确位置的数量,可能有多个满足 incorporate 依赖关系的版本。例如,0.175.1.0 指定 Oracle Solaris 11.1 SRU 0。该升级控制软件包将系统保持为 Oracle Solaris 11.1 且无支持更新。但是,该升级控制软件包将允许更新不受 pkg:/entire incorporation 约束的软件包。
将 upgradectrl 软件包发布到本地的基于文件的系统信息库。在开发和测试该新软件包时可使用此系统信息库。如果要创建面向一般用途的系统信息库,您应该加入其他步骤,例如为系统信息库创建单独的文件系统。有关创建面向一般用途的软件包系统信息库的信息,请参见在 Oracle Solaris 11.2 中复制和创建软件包系统信息库 。
在系统上创建软件包开发系统信息库。有关 pkgrepo 命令的更多信息,请参见 pkgrepo(1) 手册页。
$ pkgrepo create myrepo
设置此系统信息库的缺省发布者。缺省发布者是系统信息库的 publisher/prefix 属性的值。
$ pkgrepo -s myrepo set publisher/prefix=site
将 upgradectrl 软件包发布到开发系统信息库。
$ pkgsend -s myrepo publish upgradectrl.p5m pkg://site/upgradectrl@1.0,5.11:20131104T072336Z PUBLISHED
请注意,已将系统信息库缺省发布者应用于软件包 FMRI。
检查系统信息库以确认已发布了该软件包。
$ pkgrepo -s myrepo list PUBLISHER NAME 0 VERSION site upgradectrl 1.0,5.11:20131104T072336Z $ pkg list -vg myrepo FMRI IFO pkg://site/upgradectrl@1.0,5.11:20131104T072336Z ---
将软件包提供到位于共享位置的独立 ZFS 文件系统中的本地系统信息库。
$ pkgrecv -s myrepo -d /export/IPSpkgrepos/Solaris upgradectrl Processing packages for publisher site ... Retrieving and evaluating 1 package(s) ... PROCESS ITEMS GET (MB) SEND (MB) Completed 1/1 0.0/0.0 0.0/0.0
验证系统信息库中的该软件包以及它合并的 pkg:/entire 的版本。
$ pkg info -g /export/IPSpkgrepos/Solaris upgradectrl Name: upgradectrl Summary: Incorporation to constrain the version of the OS Description: This package controls the version of pkg://solaris/entire that can be installed. Category: Meta Packages/Incorporations State: Not installed Publisher: site Version: 1.0 Build Release: 5.11 Branch: None Packaging Date: November 20, 2013 01:01:05 AM Size: 0.00 B FMRI: pkg://site/upgradectrl@1.0,5.11:20131120T010105Z $ pkg contents -Hro fmri -t depend -a type=incorporate upgradectrl pkg://solaris/entire@0.5.11,5.11-0.175.1.0
有关创建和提供 IPS 软件包的更多详细信息,请参见在 Oracle Solaris 11.2 中使用映像包管理系统打包和交付软件 中的创建并发布软件包。
设置 site 发布者的源。系统信息库将根据此信息自动更新,以便非全局区域能访问 site 发布者提供的软件包。
$ pkg set-publisher -g /export/IPSpkgrepos/Solaris site $ pkg publisher PUBLISHER TYPE STATUS P LOCATION solaris origin online F https://pkg.oracle.com/solaris/support/ site origin online F file:///export/IPSpkgrepos/Solaris/