文章
服务器与存储管理
作者:Glynn Foster
2014 年 6 月发布
Oracle Solaris 11 使用名为映像包管理系统的基于网络的新软件包管理系统管理整个软件生命周期,包括安装、升级和删除软件包。本文总结了如何使用 Oracle Solaris 11 解释软件包版本控制,以便更好地了解系统上安装的软件的状态。
|
Oracle Solaris 11 使用名为 incorporation 的软件包约束来控制系统上安装的不同软件版本。这样可以确保系统的状态是一致的,更重要的是,确保一组软件包版本已经过 Oracle 测试,各软件包版本能够协同工作。
名为 entire 的软件包是确定系统整体状态的主要 incorporation 软件包。我们可以使用 pkg info 命令查看 entire incorporation 软件包的版本,如清单 1 所示:
root@solaris:~# pkg info entire
Name: entire
Summary: entire incorporation including Support Repository Update (Oracle Solaris 11.1.20.5.0).
Description: This package constrains system package versions to the same
build. WARNING: Proper system update and correct package
selection depend on the presence of this incorporation.
Removing this package will result in an unsupported system. For
more information see https://support.oracle.com/CSP/main/article
?cmd=show&type=NOT&doctype=REFERENCE&id=1501435.1.
Category: Meta Packages/Incorporations
State: Installed
Publisher: solaris
Version: 0.5.11 (Oracle Solaris 11.1.20.5.0)
Build Release: 5.11
Branch: 0.175.1.20.0.5.0
Packaging Date: June 13, 2014 04:23:23 PM
Size: 5.46 kB
FMRI: pkg://solaris/entire@0.5.11,5.11-0.175.1.20.0.5.0:20140613T162323Z
清单 1
在清单 1 的输出中,我们可以看到该系统上安装的版本是 Oracle Solaris 11.1.20.5.0。这意味它是一个基于 Oracle Solaris 11.1 的系统,已经用支持信息库更新 (SRU) 进行了更新。SRU 是 Oracle 每月为支持的客户提供的更新,修复错误、提供安全警报或提供对新硬件的支持。
软件包故障管理资源标识符 (FMRI) 是描述软件包版本的唯一字符串。entire 软件包的软件包 FMRI 是 pkg://solaris/entire@0.5.11,5.11-0.175.1.20.0.5.0:20140613T162323Z。
FMRI 可以概括成清单 2 所示的元素:
pkg://<publisher>/<name>@<component_version>,<release>-<branch_version>:<timestamp>
清单 2
如果使用清单 2 所示的一般化形式并分解 entire 软件包 FMRI,可以得到表 1 所示的元素。
| FMRI 段 | 值 | 说明 |
|---|---|---|
publisher | solaris | 发布者 |
name | entire | 软件包名称 |
component_version | 0.5.11 | 组件版本 |
release | 5.11 | 发行版本,如 Oracle Solaris 11 |
branch_version | 0.175.1.20.0.5.0 | 分支版本 |
timestamp | 20140613T162323Z | 软件包时间戳(ISO 8601 UTC 格式) |
我们还可以进一步分解 branch_version(entire 软件包为 0.175.1.20.0.5.0),如清单 3 所示:
<trunk_id>.<update>.<sru>.<reserved>.<buildid>.<nightly_id>
清单 3
将清单 3 中的形式用于 entire,可以得到表 2 所示的元素:
| FMRI 段 | 值 | 说明 |
|---|---|---|
trunk_id | 0.175 | 开发部门的内部版本号 |
update | 1 | 更新版本,如 Oracle Solaris 11.1 |
sru | 20 | SRU 版本 |
reserved | 0 | 保留(当前未使用) |
buildid | 5 | SRU 内部版本号 |
nightly_id | 0 | 每日内部版本号 |
总之,该系统安装了 Oracle Solaris 11.1 SRU 20.5。
临时诊断救援 (IDR) 实际上就是软件包更新,可帮助诊断客户问题或在发布正式软件包更新之前为问题提供临时救援。通常它们由一个客户应用,且只能通过一个独立软件包存档(如 .p5p 文件扩展名所示)获得。如果应用 IDR 修复,软件包版本可能在 branch_version 中新增两个元素,如下所示:
<trunk_id>.<update>.<sru>.<reserved>.<buildid>.<nightly_id>.<idr>.<idr_id>
您可以使用 pkg list 命令查看是否有任何 IDR 应用于系统,如下所示:
root@solaris:~# pkg list idr* NAME (PUBLISHER) VERSION IFO idr104 1 i--
假设 IDR 已经正式修复并作为后续 SRU 版本的一部分发布,当您执行 pkg update 获取这个新 SRU 时,该 IDR 将自动退出。
My Oracle Support 上的以下资源提供了有关如何管理 Oracle Solaris 11 软件的更多信息:
下面是有关 Oracle Solaris 的一些其他资源:
Glynn Foster 是 Oracle Solaris 的首席产品经理。他负责多个技术领域,包括 OpenStack、Oracle Solaris 映像包管理系统、安装和配置管理。
| 修订版 1.0,2014 年 6 月 25 日 |