创建本地 IPS 存储库

  1. 为存储库创建一个单独的 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
  1. 下载,解压存储库
    现在从 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
  1. 创建存储库
    使用 pkgrepo 命令为存储库创建基础结构。
# pkgrepo create /sol_11_repo
  1. 建立搜索索引
    存储库创建命令默认不构建搜索索引,所以我们需要创建一个
# pkgrepo -s /sol_11_repo refresh
Initiating repository refresh.
  1. 启用客户端访问存储库
    为了使客户端系统能够从存储库中获取包,我们必须为发布者设置来源。
    要检查我们刚刚创建的存储库的发布者:
# 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词汇

  1. Manifest:描述一个IPS包

  2. 存储库:存储包的本地或者远程位置。 位置由统一资源标识符 (URI - Universal Resource Identifier) 指定

  3. 发布者:提供包的个人或者组织。

  4. Image : 可以安装 IPS 包的位置。

  5. Catalog :列出存储库中的所有包

  6. 包存档:包含发布者信息和发布者提供的包的文件

  7. 启动环境:镜像的可启动实例

  8. Oroirn :包含包元数据和包内容的存储库。

  9. 镜像:仅包含包内容的存储库。 类似于 Internet 上文件的下载镜像。

IPS的优点:

  1. 自动软件依赖检查和验证。

  2. 使用 ZFS 快照和克隆功能创建即时备份和回滚,以防出现任何问题。

  3. 跨多个客户端版本轻松复制完全相同的软件集。

  4. 允许我们轻松搜索、列出、安装、更新、删除 Solaris 11 的软件包。

  5. 创建和管理引导环境。

www. On IT Road .com

创建远程 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 连接,并且我们尚未配置任何其他本地存储库,则可以默认使用此存储库。
公共存储库通常不用于生产,因为它不安全,不像本地存储库那样可定制。

Solaris 11 创建 IPS 存储库

Oracle Solaris 11 使用全新的包管理方法。
现在有了镜像打包系统 (IPS),系统管理员可以从本地或者远程存储库安装、更新和搜索包。
可以使用命令行和 GUI 界面访问存储库。

存储库可以是以下任何一种:

  1. 本地仓库
  2. 本地网络中的远程仓库
  3. 互联网存储库
    尽管本地网络中的远程存储库是生产设置中的常见做法,因为这提供了中央存储库以及安全性和完全控制。

更新 IPS 存储库

必须更新本地存储库以使用最新的软件。
更新仅复制更新的软件文件。
这可以通过两种方式完成:

  1. 直接来自公共存储库
    我在这里使用环境变量,否则我们可以通过在 pkgrecv 命令中提供源和目标来实现。
# export PKG_SRC=http://pkg.oracle.com/solaris/release/
# export PKG_DEST=/sol_11_repo
# pkgrecv '*'
  1. 从本地存储库更新
# pkgrecv -s 192.168.1.10:/sol_11_depo -d /sol_11_repo '*'
日期:2020-09-17 00:15:18 来源:oir作者:oir