系统安装时部署RPM采用什么策略?

系统安装时部署RPM采用什么策略?

澄清一下,我想知道如何在安装时在系统上安装 RPM。是的,我知道要安装,请使用“rpm -i”,但这不是问题所在。

我的观点是,当你安装一个新的 CentOS 时,我们将

  1. 在最小系统上启动
  2. 启动图形环境
  3. 配置安装过程的 UI 参数
  4. 设置磁盘(分区、格式化)
  5. 列出您要安装的软件包
  6. 安装这些软件包
  7. 创建用户帐户等

而这一切都将由Anaconda来管理。

我的观点是,我知道如何创建分区(fdisk、parted 等),我知道如何格式化它们(mkfs,...),然后您可以创建文件系统树(mkdir,...),但是您如何能够部署 RPM,因为没有 RPMDB,也没有部署 RPM 实用程序。

我猜想可能涉及 chroot,以便您可以隔离新系统,然后我们就可以自己处理了。不用说,在检查 RPM 安装时,我只得到基本的 RPM 安装命令。有没有关于我们如何做到这一点的线索?

答案1

您提到的所有步骤都是从不同的系统完成的。无论是 PXE 启动还是 CD/USB ISO。因此,您拥有之前放在该映像上的所有工具。

Anaconda 在步骤 6 中执行的操作是(简化):

  • 将磁盘挂载到 /mnt/newroot
  • rpm --根 *.rpm

当 rpmdb 不存在时,RPM 将创建 rpmdb。

显然,最好分两步进行安装:首先,安装 rpm 以构建最小系统,然后再安装其余部分。这样,您就不必太担心系统上的预脚本要求。

正是由于这种情况,文档才敦促大家用 LUA 编写预转换脚本。因为在转换之前,系统上什么都没有。

答案2

您可以生成自己的自定义 ISO,其中将包含您需要的所有软件包。

文章中详细描述了该过程 创建自定义 ISO RHEL/CentOS 8 的 9 个简单步骤

这实际上允许您限制生成的 ISO 仅包含您需要的包,从而减小其大小。

相关内容