JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用映像包管理系统打包和交付软件     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  IPS 设计目标、概念和术语

2.  使用 IPS 打包软件

3.  安装、删除和更新软件包

4.  指定软件包相关项

5.  允许变量

6.  以编程方式修改软件包清单

7.  在软件包安装过程中自动进行系统更改

8.  有关软件包更新的高级主题

避免软件包内容冲突

重命名、合并和拆分软件包

重命名单个软件包

合并两个软件包

一个软件包兼并另一个软件包

重命名两个软件包

拆分一个软件包

使软件包过时

保留迁移的可编辑文件

删除或重命名目录时移动未打包的内容

交付应用程序的多个实现

交付要在引导环境之间共享的目录

如何将内容交付到共享目录

9.  对 IPS 软件包进行签名

10.  处理非全局区域

11.  修改已发布的软件包

A.  对软件包进行分类

B.  如何使用 IPS 打包 Oracle Solaris OS

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

交付要在引导环境之间共享的目录

交付到引导环境 (boot environment, BE) 中的一些文件必须在 BE 之间共享,这样才能使系统在具有多个 BE 的环境中正常运行。一般情况下,IPS 不支持交付在 BE 之间共享的内容。在一个 BE 中更新的此类共享内容可能不满足其他 BE 的要求。本节介绍了如何交付在 BE 之间共享的内容。

IPS 已在 BE 之间共享了以下目录:

/var/audit
/var/cores
/var/crash
/var/mail

在每个 BE 中,这些目录是指向以下共享目录的符号链接:

/var/share/audit
/var/share/cores
/var/share/crash
/var/share/mail

这些共享目录均位于 VARSHARE 数据集中,它是挂载在 /var/share 上的一个共享数据集。

如果需要在 BE 之间共享其他数据但这些数据在 IPS 软件包中是作为非共享数据交付的,则管理员可能会将此类数据放在独立数据集或远程文件服务器中。不过,创建每目录数据集意味着要在每个区域中创建许多数据集,这是不理想的。

相反,请使用以下过程创建可交付共享数据集的软件包,或修改软件包以共享先前作为非共享内容交付的内容。IPS 支持将未共享内容的旧版软件包更新到在 BE 之间共享内容的同一软件包的较新版本。

如何将内容交付到共享目录

以下过程介绍了如何设计必须交付在 BE 之间共享的内容的软件包。

要在 BE 之间共享数据,请将一个共享数据集在引导期间挂载到 BE 中,并使用从 BE 中的相应位置指向该共享数据集的符号链接。在 BE 内,将基本目录结构交付到一个暂存目录。提供一个在引导期间将暂存在 BE 中的内容移动到共享数据集的 SMF 服务,并提供一个执行器来要求重新引导。

  1. 将共享内容交付到 BE 内的暂存区域中。
    1. 提供一个暂存区域。

      在您的软件包中,提供一个存储共享内容的暂存区域。例如,您可以提供一个名为 .migrate 的目录。

    2. 提供共享结构。

      将子目录交付到提供您希望在共享数据集中使用的目录结构的 .migrate 目录中。

    3. 交付共享文件。

      根据需要,将文件交付到暂存区域中的目录结构。不能共享其他文件系统对象,如链接。

    如果交付到暂存区域的内容先前是作为非共享内容交付的,请在新的 dirfile 操作中使用 salvage-from 属性。在下例中,以前交付到 /opt/myapplication/logs 的内容现在将交付到可在 BE 之间共享的数据集。此共享数据集的暂存区域为 /opt/.migrate

    以下操作是以前交付的:

    dir path=opt/myapplication/logs owner=daemon group=daemon mode=0755

    以下操作是针对将共享的目录的新操作:

    dir path=opt/.migrate/myapplication/logs owner=daemon group=daemon \
        mode=0755 reboot-needed=true salvage-from=/opt/myapplication/logs

    删除或重命名目录时移动未打包的内容中还论述了 salvage-from 属性。

  2. 提供一个用以将内容移至共享数据集的脚本。

    在引导期间,脚本可以作为 SMF 方法脚本的一部分运行,以将文件内容从暂存目录移至共享数据集。该脚本必须执行以下步骤:

    1. 创建共享数据集。

      SMF 方法脚本中的以下命令将创建挂载在 /opt/share 上的数据集 rpool/OPTSHARE。该数据集还可以供 /opt 中的其他共享内容使用。脚本应使用 zfs list 来测试此数据集是否已存在。

      zfs create -o mountpoint=/opt/share rpool/OPTSHARE
    2. 创建共享目录结构。

      在共享数据集中,重新创建在 BE 的暂存目录下定义的目录结构中尚未存在的任何部分。

    3. 移动文件内容。

      将文件内容从暂存目录移至共享数据集。

  3. 交付从 BE 指向共享目录的符号链接。

    以下操作将创建一个符号链接,该符号链接从先前打包的目录指向在系统重新引导时将由脚本在 /opt/share 中创建的共享目录:

    link path=opt/myapplication/logs target=../../opt/share/myapplication/logs
  4. 添加一个执行器来要求重新引导。

    这些目录项需要一个 reboot-needed 执行器才能正确支持软件自组装中提到的“不变区域”的更新。如果需要自组装,则在以只读方式重新引导之前,不变区域最多能够在读/写模式下引导到 svc:/milestone/self-assembly-complete:default 里程碑。有关更多信息,请参见 zonecfg(1M) 手册页中的 file-mac-profile 属性。

    重新引导时,SMF 服务会将任何新的和挽救的目录内容移至共享数据集。/opt/myapplication 中的符号链接指向该共享数据集。