在 Oracle® Solaris 11.2 中使用映像包管理系统打包和交付软件

退出打印视图

更新时间: 2014 年 7 月
 
 

origin 相关项

origin 相关项的存在是为了解决需要中间转换的升级问题。其缺省行为是指定在要更新的映像上必须存在的软件包的最低版本(如果已安装)。如果 root-image 属性的值为 true,则软件包必须存在于根目录为 / 的映像上,才能安装此软件包。

例如,通常可能使用数据库软件包版本 5,该版本支持从版本 3 或更高版本进行升级,但不支持从更低版本升级。在这种情况下,当正在运行版本 3 时,版本 5 具有依赖于自身的 origin 相关项。因此,如果要全新安装版本 5,安装将继续进行。但是,如果安装了版本 1 的软件包,将无法将该软件包直接升级到版本 5。在这种情况下,pkg update database-package 将不会选择版本 5,而会选择版本 3 作为可升级到的最新版本。

如果 root-image 属性的值为 true,那么当相关项目标位于正在运行的系统中(而不是正在更新的映像上)时,相关项目标的版本不得低于指定的版本。此形式的 origin 相关项通常用于操作系统问题(例如对引导块安装程序的相关项)。

下面是 origin 相关项的示例:

depend fmri=pkg:/database/mydb@3.0 type=origin

带手动维护的固件的设备驱动程序

设备驱动程序应管理自身的固件:固件应在驱动程序软件包中提供并且应在管理员使用 pkg update 命令更新驱动程序时进行更新。有关驱动程序设计信息,请参见编写适用于 Oracle Solaris 11.2 的设备驱动程序 中的固件兼容性。驱动程序还应继续使用 downrev 固件执行操作,即使某些新功能可能不受支持也是如此。

一些驱动程序需要手动干预来更新设备固件,而与通过运行 pkg update 来更新驱动程序分开。一些带手动维护的固件的驱动程序并非与所有较早的固件版本均兼容,而且对固件有最低版本要求。origin 相关项可用于防止安装与当前安装的固件不兼容的驱动程序,进而可以防止系统升级为不能完全正常工作的系统。

origin 相关项可用于指定与所提供驱动程序的版本兼容的设备固件最低版本。如果 root-image 属性的值为 true,并且 fmri 属性的值以 pkg:/feature/firmware/ 开头,则将剩余的 fmri 值视为 /usr/lib/fwenum 中计算固件依赖项的命令。当管理员尝试更新指定此类相关项的软件包并且固件枚举器确定没有满足固件相关项时,将显示一条错误消息并且将不执行更新,此时系统保持不变。错误消息会显示由此驱动程序管理的设备所需的固件版本。更新完固件后,管理员可再次尝试使用 pkg update

下面是一个具有最低固件版本要求的 origin 相关项示例:

depend fmri=pkg:/feature/firmware/mpt_sas minimum-version=1.0.0.0 \
root-image=true type=origin variant.opensolaris.zone=global

pkg 客户机调用固件枚举器,如以下示例中所示:

/usr/lib/fwenum/mpt_sas minimum-version=1.0.0.0

以下来自 pkg 客户机的样例消息告知管理员,有两个由 mpt_sas 驱动程序管理的设备所具有的固件不满足最低版本要求。该消息还说明了所需的最低固件版本。

There are 2 instances of downrev firmware for the mpt_sas devices present on this system;
upgrade each to version 1.0.0.0 or greater to permit installation of this version of Solaris.

如果驱动程序支持来自多个供应商的相同设备,则相关项除了指定 minimum-version 属性外,还可以指定 vendor 属性。