创建本地 IPS 存储库
- 为存储库创建一个单独的 ZFS 文件系统
创建用于存储 IPS 存储库的专用文件系统。
# zpool create sol_11_repo c1t2d0 # zfs set atime=off sol_11_repo # zfs set compression=on sol_11_repo
atime 属性不会更新文件的访问时间,从而减少读取文件时的写入流量。
# zpool list sol_11_repo NAME SIZE ALLOC FREE CAP HEALTH ALTROOT sol_11_repo 14.9G 91K 14.9G 0% ONLINE
# df -h /sol_11_repo Filesystem size used avail capacity Mounted on sol_11_repo 15G 31K 15G 1% /sol_11_repo
- 下载,解压存储库
现在从 oracle 站点下载存储库的 iso 镜像。
它分为两部分,所以我们必须将它组合在一起,如下所示:
# cat sol-11_1-repo-full.iso-a sol-11_1-repo-full.iso-b > sol-11_1-repo-full.iso
现在将 ISO 镜像挂载到 /mnt
# mount -F hsfs `lofiadm /tmp/sol-11_1-repo-full.iso` /mnt
将存储库中的所有文件复制到我们为存储库创建的挂载点。
# sudo rsync -avz /mnt/repo/* /sol_11_repo/
我们现在可以卸载挂载点 /mnt 并删除 iso 镜像。
# umount /mnt # rm -fr /tmp/sol-11_1-repo-full.iso
- 创建存储库
使用 pkgrepo 命令为存储库创建基础结构。
# pkgrepo create /sol_11_repo
- 建立搜索索引
存储库创建命令默认不构建搜索索引,所以我们需要创建一个
# pkgrepo -s /sol_11_repo refresh Initiating repository refresh.
- 启用客户端访问存储库
为了使客户端系统能够从存储库中获取包,我们必须为发布者设置来源。
要检查我们刚刚创建的存储库的发布者:
# pkgrepo -s /sol_11_repo/ info PUBLISHER PACKAGES STATUS UPDATED solaris 4401 online 2012-09-27T22:22:59.530981Z
如上所示,存储库的发布者是 solaris。
在本地客户端上触发以下命令,以便能够从本地存储库获取包。
# pkg set-publisher -G '*' -M '*' -g /sol_11_repo solaris -G '*' -> Removes all existing oroirns for the solaris publisher. -M '*' -> Removes all existing mirrors for the solaris publisher. -g -> Adds the URI of the newly-created repository as the new oroirn for the solaris publisher.
现在检查存储库在本地系统上是否正常工作。
pkg list 命令将显示存储库中所有可用的包。
# pkg list -g /sol_11_repo NAME (PUBLISHER) VERSION IFO FSWfontconfig-devel-docs 0.5.11-0.130 --o FSWxorg-client-docs 0.5.11-0.130 --r FSWxorg-client-programs 0.5.11-0.130 --r FSWxorg-clientlibs 0.5.11-0.130 --r FSWxorg-data 0.5.11-0.130 --r FSWxorg-devel-docs 0.5.11-0.130 --o FSWxorg-headers 0.5.11-0.130 --r FSWxwpft 0.5.11-0.130 --o FSWxwrtl 0.5.11-0.130 --r ..................
IPS词汇
Manifest:描述一个IPS包
存储库:存储包的本地或者远程位置。 位置由统一资源标识符 (URI - Universal Resource Identifier) 指定
发布者:提供包的个人或者组织。
Image : 可以安装 IPS 包的位置。
Catalog :列出存储库中的所有包
包存档:包含发布者信息和发布者提供的包的文件
启动环境:镜像的可启动实例
Oroirn :包含包元数据和包内容的存储库。
镜像:仅包含包内容的存储库。 类似于 Internet 上文件的下载镜像。
IPS的优点:
自动软件依赖检查和验证。
使用 ZFS 快照和克隆功能创建即时备份和回滚,以防出现任何问题。
跨多个客户端版本轻松复制完全相同的软件集。
允许我们轻松搜索、列出、安装、更新、删除 Solaris 11 的软件包。
创建和管理引导环境。
创建远程 IPS 存储库
现在是创建可供生产设置中的所有系统访问的存储库的步骤,除了我们为配置本地 IPS 存储库所做的工作之外,我们还必须执行一些另外的步骤。
首先是通过 NFS 共享存储库。
# zfs set sharenfs=on sol_11_repo
现在,客户端系统要使用远程存储库中的包,请使用以下命令:
# pkg set-publisher -G '*' -M '*' -g /net/repo_server/sol_11_repo/ solaris repo_server -> this is the central repository server -G '*' -> Removes all existing oroirns for the solaris publisher. -M '*' -> Removes all existing mirrors for the solaris publisher. -g -> Adds the URI of the newly-created repository as the new oroirn for the solaris publisher.
要检查我们是否可以列出软件包,请使用以下命令:
# pkg list -g /sol_11_repo
使用默认存储库
现在,每个solaris 11 系统都配置为有一个默认发布者solaris,它使用公共“发布”存储库:http://pkg.oracle.com/solaris/release。
我们不必创建此存储库。
如果我们具有到 solaris 11 主机的 Internet 连接,并且我们尚未配置任何其他本地存储库,则可以默认使用此存储库。
公共存储库通常不用于生产,因为它不安全,不像本地存储库那样可定制。
Oracle Solaris 11 使用全新的包管理方法。
现在有了镜像打包系统 (IPS),系统管理员可以从本地或者远程存储库安装、更新和搜索包。
可以使用命令行和 GUI 界面访问存储库。
存储库可以是以下任何一种:
- 本地仓库
- 本地网络中的远程仓库
- 互联网存储库
尽管本地网络中的远程存储库是生产设置中的常见做法,因为这提供了中央存储库以及安全性和完全控制。
更新 IPS 存储库
必须更新本地存储库以使用最新的软件。
更新仅复制更新的软件文件。
这可以通过两种方式完成:
- 直接来自公共存储库
我在这里使用环境变量,否则我们可以通过在 pkgrecv 命令中提供源和目标来实现。
# export PKG_SRC=http://pkg.oracle.com/solaris/release/ # export PKG_DEST=/sol_11_repo # pkgrecv '*'
- 从本地存储库更新
# pkgrecv -s 192.168.1.10:/sol_11_depo -d /sol_11_repo '*'