澄清一下,我想知道如何在安装时在系统上安装 RPM。是的,我知道要安装,请使用“rpm -i”,但这不是问题所在。
我的观点是,当你安装一个新的 CentOS 时,我们将
- 在最小系统上启动
- 启动图形环境
- 配置安装过程的 UI 参数
- 设置磁盘(分区、格式化)
- 列出您要安装的软件包
- 安装这些软件包
- 创建用户帐户等
而这一切都将由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 仅包含您需要的包,从而减小其大小。