4.3. 使用命令行界面创建蓝图
您可以使用命令行界面(CLI)创建一个新的 RHEL 镜像构建器蓝图。蓝图描述了最终的镜像及其自定义,如软件包和内核自定义。
前提条件
- 您以 root 用户身份或是 welder 组成员的用户身份登录
流程
创建一个包含以下内容的纯文本文件:
name = "BLUEPRINT-NAME" description = "LONG FORM DESCRIPTION TEXT" version = "0.0.1" modules = [] groups = []
用您的蓝图的名称和描述替换 BLUEPRINT-NAME 和 LONG FORM DESCRIPTION TEXT。
根据 Semantic 版本化方案,将 0.0.1 替换为版本号。
对于您要包含在蓝图中的每个软件包,请在文件中添加以下行:
[[packages]] name = "package-name" version = "package-version"
使用软件包名称替换 package-name,比如 httpd、gdb-doc 或者 coreutils。
(可选)将 package-version 替换为要使用的版本。此字段支持
dnf
版本规范:- 对于特定版本,请使用确切的版本号,如 8.7.0。
- 对于最新可用版本,请使用星号 *。
- 对于最新的次版本,请使用以下格式,如 8.*。
自定义蓝图以满足您的需要。例如,禁用 Simultaneous Multi Threading (SMT),在蓝图文件中添加以下行:
[customizations.kernel] append = "nosmt=force"
有关其他可用的定制信息,请参阅 支持的镜像自定义。
- 将文件保存为 例如 BLUEPRINT-NAME.toml,并关闭文本编辑器。
推送蓝图:
# composer-cli blueprints push BLUEPRINT-NAME.toml
将 BLUEPRINT-NAME 替换为您在前面步骤中使用的值。
注意以非 root 身份运行
composer-cli
命令创建镜像,请将您的用户添加到weldr
或root
组中。# usermod -a -G weldr user $ newgrp weldr
验证
列出现有的蓝图以验证蓝图是否已推送并已存在:
# composer-cli blueprints list
显示您刚刚添加的蓝图配置:
# composer-cli blueprints show BLUEPRINT-NAME
检查蓝图中列出的组件和版本是否有效:
# composer-cli blueprints depsolve BLUEPRINT-NAME
如果 RHEL 镜像构建器无法解决自定义存储库中软件包的依赖项,请清除
osbuild-composer
缓存:$ sudo rm -rf /var/cache/osbuild-composer/* $ sudo systemctl restart osbuild-composer