通过分发构造器,可以指定可用于基于要构建的映像类型在映像创建过程中进行定制的其他脚本。清单文件指向脚本,脚本会将通用映像转换为特定于介质的分发。这些脚本在清单文件的执行部分中引用。可以指定任意数量的定制脚本检查点。
此外,请注意清单文件的执行部分中指定的脚本会在映像创建过程中运行。执行部分不会引用预安装或安装后脚本。
创建您自己的定制脚本时,请注意以下内容:
脚本可以是 Python 程序、shell 脚本或二进制文件。
脚本以其在清单文件的执行部分中列出的顺序执行。
在脚本(shell 和 python 模块)内执行的命令的标准输出 (stdout) 和错误输出 (stderr) 记录在用于报告已完成构建或尝试构建的日志文件中。
确保成为 root 角色的用户可以执行这些脚本。
要确定新检查点的位置,请查看设置构建检查点中有关缺省检查点的说明。
确保为脚本指定完整路径。检查点以其在清单的执行部分中列出的顺序执行。
在清单文件的执行部分中为新脚本添加引用时,必须指定可用于在该脚本执行其任务之前或之后暂停映像构建的检查点名称。或者,可以包括与检查点名称关联的定制消息。如果忽略该消息,脚本的路径将用作缺省检查点消息。在构建过程中,检查点运行时将显示检查点消息。
以下示例检查点引用名为 "my-script" 的定制脚本。
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/custom_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh</args> </checkpoint>
此处,{PKG_IMAGE_PATH} 被指定为参数部分中的构建参数。
<checkpoint name="my-script" desc="my new script" mod_path="solaris_install/distro_const/checkpoints/my_script" checkpoint_class="CustomScript"> <args>/tmp/myscript.sh {PKG_IMAGE_PATH}</args> </checkpoint>
如果包括在检查点中,{PKG_IMAGE_PATH} 和 {BOOT_ARCHIVE} 的值将由 distro_const 实用程序分别替换为 ZFS dataset/build_data/pkg_image 和 ZFS dataset/build_data/boot_archive。
可以一步构建映像。或者,要检查构建状态,可以在各个检查点上停止然后重新启动构建。
有关说明,请参见Chapter 3, 构建映像。
构建输出会显示日志文件的位置。