在 Oracle® Solaris 11.2 中添加和更新软件

退出打印视图

更新时间: 2014 年 7 月
 
 

创建定制 incorporation 软件包

pkg:/entire incorporation 软件包控制可在映像中安装的核心操作系统软件包的版本。要控制系统升级,请创建将 pkg:/entire 软件包的某个特定版本指定为 incorporate 依赖项的软件包。

创建定制 incorporation 软件包清单

以下示例显示了一个名为 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.depend.install-hold

如果用户输入 pkg update upgradectrl 命令,也会自动更新 pkg:/entire 软件包。

variant.opensolaris.zone

该软件包可安装到全局和非全局区域。另请参见对 parent 依赖项的说明。

variant.arch

该软件包可安装在 SPARC 和 x86 系统上。

parent 依赖项

只有已安装在全局区域中时,才能将该软件包安装到非全局区域中。

require 依赖项

仅当已安装或可在该操作中安装 pkg://solaris/entire 软件包时,才能安装 upgradectrl 软件包。

incorporate 依赖项

必须安装 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/