IPS 组件
IPS 由以下关键组件组成。
每个组件都可以发挥作用。
软件包
IPS 中的包是由一组键值对定义的操作集合,这些键值对表示元数据,例如分类、描述或者其他属性(例如路径和别名)。
键值对还可以表示数据负载。
这些操作可以表示项目,例如目录、链接、驱动程序和服务。
每个 IPS 包都由一个故障管理资源标识符 (FMRI) 表示,它与 pkg 命令一起使用以指示要对其执行操作的包。
存储库
存储库是客户端发布和检索包的位置。
该位置由统一资源标识符 (URI) 描述,例如 http://pkg.oracle.com/solaris/release。
存储库可以包含来自任意数量的发布者的软件包,例如 solaris 和 ha-cluster。
一个发布者可以发布到多个存储库。
一个存储库有一个源和零个或者多个克隆的存储库。
存储库源是包含包元数据(包列表和目录)和包内容(包文件)的包存储库的位置。
FMRI
FMRI 包含有关包的描述性信息,例如包名称、版本信息和日期。
例如,FMRI pkg://solaris/developer/apptrace@0.5.11,5.110.175.2.0.0.42.2:20140624T183919Z 包含以下信息:
Scheme: pkg Publisher: solaris Category: developer Package Name: apptrace Component Version: 0.5.11 Build Version: 5.11 Branch Version: 0.175.2.0.0.42.2 Time Stamp (when the package was published): 20140624T183919Z
Manifest
列表描述了组成包的组件和属性。
客户端包管理实用程序
pkg 是一个命令行实用程序,可用于创建和管理镜像;搜索软件包数据;并执行软件安装、升级和删除。
引导环境
引导环境 (BE) 是 Oracle Solaris 11 操作系统的可引导镜像以及安装在该镜像中的任何其他应用程序软件包。
系统管理员可以在他们的系统中维护多个 BE,每个 BE 可以安装不同的软件版本。
使用户能够使用 HTTP 接口检索包
创建本地 IPS 存储库后,我们需要创建一个库服务器实例以提供对包存储库中包含的数据的网络访问。
我们可以配置服务的默认实例。
要创建和配置新的仓库服务器实例,请执行以下步骤:
- 创建 pkg/server 服务的仓库服务器实例,命名为 solaris:
# svccfg -s pkg/server add solaris
- 设置pkg/server:solaris实例可以找到存储库数据的路径:
# svccfg -s pkg/server:solaris setprop pkg/inst_root=/export/IPSpkgrepos/Solaris
- 设置仓库服务器实例监听传入包请求的端口号(可选):
# svccfg -s pkg/server:solaris setprop pkg/port=81
- 重启包库服务器服务:
# svcadm refresh pkg/server:solaris # svcadm enable pkg/server:solaris
- 通过在 localhost 位置打开浏览器窗口来测试存储库服务器是否正常工作。
本地包存储库
默认系统安装列表从位于 http://pkg.oracle.com/solaris/release/ 的公共存储库安装 Oracle Solaris 11 操作系统。
如果我们有 Oracle 支持合同,安装后,我们可以更改默认列表以使用 Oracle 支持信息库。
我们还可以添加其他发布者和存储库,例如 Oracle Exadata、Oracle Solaris Cluster 和 Oracle Solaris Studio 的发布者和存储库。
我们可以创建自己的本地包存储库。
当网络客户端无权访问基于 Web 的默认存储库时,有必要拥有一个本地包存储库。
我们可能希望拥有包存储库的本地副本的其他原因包括:
- 性能:拥有本地包存储库允许客户端以本地网络速度访问包。
- 安全性:我们可能不希望客户端系统能够访问 Internet。
- 复制:我们希望确保明年执行的安装与今天执行的安装完全相同。
配置 IPS 客户端
对于要访问本地存储库的客户端系统,我们必须将发布者设置为本地 IPS 发布者,如下例所示。
此处,s11-server1.mydomain.com 是我们在其上配置了库服务器实例的 Oracle Solaris 11 系统的 FQDN 名称。
# pkg publisher PUBLISHER TYPE STATUS P URI solaris oroirn online F http://pkg.oracle.com/solaris/release/
# pkg set-publisher -G http://pkg.oracle.com/solaris/release/ -g http://s11-server1.mydomain.com/ solaris
# pkg publisher PUBLISHER TYPE STATUS P URI solaris oroirn online F http://s11-server1.mydomain.com/
镜像包管理系统 (IPS-Image Packaging System) 是一个支持软件生命周期管理的框架,例如软件包的安装、升级和删除。
IPS 还使用户能够创建自己的软件包、创建和管理软件包存储库以及复制和镜像现有的软件包存储库。
软件包只能安装到作为引导环境 (BE) 一部分的文件系统中。
例如,在默认的 Oracle Solaris 11 安装中,包操作仅支持 rpool/ROOT/BEname/ 下的数据集。
使用 IPS,我们可以执行以下任务:
- 创建和管理镜像。
- 在系统和 IPS 存储库中搜索 IPS 软件包。
- 复制、镜像、创建和管理包存储库。
- 创建 IPS 包并将其发布到包存储库。
IPS 是 Oracle Solaris 11 操作系统的打包系统,因为 SVR4 是 Oracle Solaris 10 操作系统的打包系统。
IPS 的一个关键组件是包存储库。
包存储库是存储软件包以及客户端系统从中检索包的位置。
我们甚至可以克隆整个包存储库,这样客户端可以访问的任何包存储库都拥有继续进行所需的一切。
创建本地存储库
1. 获取存储库文件。
创建本地软件包信息库时,首先从以下位置下载 Oracle Solaris 11 信息库文件:http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
存储库文件为我们提供了完整的软件包存档,允许我们设置客户端系统可以连接到的本地网络 IPS 存储库。
下载以下存储库文件:
README 文件 (README-zipped-repo.txt)
存储库组装脚本 (install-repo.ksh)
MD5 校验和文件
四个 IPS 存储库部分(zip 文件)
2. 使安装脚本文件可执行。
# cd /opt/ora/repodir ### download directory # chmod +x install-repo.ksh
3. 为存储库创建 ZFS 文件系统。
一个好的做法是将存储库存储在启用压缩的单独 ZFS 文件系统中。
# zfs create -o compression=on -o atime=off rpool/export/IPSpkgrepos # zfs create rpool/export/IPSpkgrepos/Solaris
4. 运行存储库安装脚本 install-repo.ksh。
# ./install-repo.ksh -d /export/IPSpkgrepos/Solaris -c -v -I Comparing checksums of downloaded files...done. Checksums match. Uncompressing sol-11_2-repo-1of4.zip...done. Uncompressing sol-11_2-repo-2of4.zip...done. Uncompressing sol-11_2-repo-3of4.zip...done. Uncompressing sol-11_2-repo-4of4.zip...done. Repository can be found in /export/IPSpkgrepos/Solaris. Initiating repository verification. Building ISO image...done. ISO image and instructions for using the ISO image are at: /opt/ora/repodir/sol-11_2-repo.iso /opt/ora/repodir/README-repo-iso.txt
5. 配置发布者。
Oracle Solaris 11 操作系统的发布者是 solaris,该发布者的默认来源是 http://pkg.oracle.com/solaris/release。
如果我们希望客户端从本地存储库获取软件包,我们必须重置 Solaris 发布者的源,如本文后面的“配置 IPS 客户端”部分所示。
自动更新本地主存储库
我们可以使用 svc:/application/pkg/mirror SMF 服务从 Oracle 支持信息库自动更新本地主信息库。
默认情况下,svc:/application/pkg/mirror SMF 服务执行从在此镜像中定义的 solaris 发布者源到 /var/share/pkg/repositories/solaris 的定期 pkgrecv 操作。
此 pkgrecv 操作在每个月一天的凌晨 2:30 开始。
因此,在数据中心环境中,只有一个系统需要有一个互联网发布者源并运行镜像服务来自动接收更新。
其他系统可以将其发布者来源设置为该存储库,然后它们也将始终具有最新的更新,至少每月一次。
有关更多信息,请参阅 http://docs.oracle.com/cd/E36784_01/html/E36805/pkgmirror.html#scrolltoc。