IT袋

当前位置:主页 > 经验教程 > 系统教程 >

使用mkosi构建RHEL和RHEL

使用mkosi构建RHEL和RHEL UBI镜像

时间:2023-12-13 14:03:42 来源:IT袋 作者:马勇
导读:使用mkosi构建RHEL和RHEL,小编为大家讲一讲使用mkosi构建RHEL和RHEL的IT知识,接下来分享详细内容。 mkosi 是一个轻量级工具,用于从发行版软件包构建镜像。 本文介绍如何使用 mkosi 从 RHEL 和 RHEL 

使用mkosi构建RHEL和RHEL

小编为大家讲一讲使用mkosi构建RHEL和RHEL的IT知识,接下来分享详细内容。

mkosi 是一个轻量级工具,用于从发行版软件包构建镜像。

本文介绍如何使用 mkosi 从 RHEL 和 RHEL 通用基础镜像Universal Base Image(UBI)的软件包构建镜像。

RHEL UBI 是 RHEL 的一个子集,可以在没有订阅的情况下免费使用。

使用mkosi构建RHEL和RHEL

mkosi 特性

mkosi 支持一些输出格式,但最重要的是 可发现磁盘镜像Discoverable Disk Images(DDI)。同一个 DDI 可用于引导容器、或运行在虚拟机、抑或是复制到 U 盘以引导真实物理机,然后从 U 盘复制到磁盘以引导系统。该镜像具有标准化的布局和描述其用途的元数据。

mkosi 依赖其他工具来完成大部分工作:使用systemd-repart在磁盘镜像上创建分区,使用mkfs.btrfs/mkfs.ext4/mkfs.xfs等创建文件系统,并使用dnf/apt/pacman/zypper下载和解压包。

mkosi 支持一系列发行版:Debian 和 Ubuntu、Arch Linux、openSUSE,当然还包括 Fedora、CentOS Stream 及其衍生版本,以及最近的 RHEL UBI 和 RHEL 。由于实际的“重活”是由其他工具完成的,mkosi 可以进行交叉构建。这意味着可以使用一个发行版构建各种其他发行版的镜像。唯一的要求是主机上安装了相应的工具。Fedora 有原生的aptpacmanzypper,因此它为使用 mkosi 构建任何其他发行版提供了良好的基础。

它还有一些有趣的功能:镜像可以由非特权用户创建,或者在没有设备文件的容器中创建,特别是没有对回环设备的访问权限。它还可以在没有特权的情况下将这些镜像启动为虚拟机(使用qemu)。

配置是声明性的,非常容易创建。使用 systemd-repart 创建磁盘分区,并使用 repart.d 配置文件定义应该如何完成此操作。

项目目标

mkosi 的一个目标是允许对软件项目进行针对不同发行版的测试。它将为一个发行版创建一个镜像(使用该发行版的软件包),然后将软件项目编译并安装到该镜像中,插入不属于软件包的额外文件。但是,首个阶段,即从软件包创建镜像的过程,本身就是有用的。这是我们将首先展示的内容。

我们最近添加了对 RHEL 和 RHEL UBI 的支持。让我们从 RHEL UBI 开始,利用发行版软件包创建镜像。

请注意,下面的示例要求 mkosi 19,而且不适用于更早的版本。

带有 Shell 的基本 RHEL UBI 镜像

$ mkdir -p mkosi.cache
$ mkosi \
    -d rhel-ubi \
    -t directory \
    -p bash,coreutils,util-linux,systemd,rpm \
    --autologin

相关阅读