答案是:
不要这样做。
至少不是你提议的方式。
您正在指定一个问题的解决方案,而没有真正定义您的需求。多少个标准包?你增加了多少/多大?什么是门控项目(例如需要 Web 服务器,需要 sshd)?您只需要几个标准包还是几百个?
Linux 发行版,例如 Redhat、CentOS、Fedora、Canonical/Ubuntu、Debian,需要花费大量的工时才能做到这一点。
所以,你需要知道你使用的是什么发行版。提到 rpm,您可能正在使用 Redhat、CentOS 或 Fedora。他们有创建“实时”CD(和/或 USB 记忆棒)和“完整安装”DVD 的程序。但是,这可能是一项艰巨的工作,尤其是当您尝试移植他们不知道的额外文件时。
我强烈建议您为您的发行版使用标准安装程序[已经过大量 QA'ed]。然后,在安装并重新启动后,从单独的媒体中提取您的附加软件包或从您控制的服务器下载。你的东西的安装媒体可能只包含一个 bash 脚本,它创建/etc/yum.repos.d/mystuff.repo
并启动一个yum install mystuff
此外,如果您要进行插件和启动安装程序,您是否希望它只是擦除/重新分区主硬盘而不询问(例如全自动)?或者,您是否希望它像标准安装程序那样显示现有分区等?
回到需求,为什么需要一次性安装程序?
你打算在多少个系统上安装这个?5、10、100、1000?他们都在服务器场中吗?PXE 引导和从中央服务器引导/安装可能会更好。
例如,谷歌拥有数十万台服务器[或更多]。 他们对此有需求。但是,他们也有整个开发团队致力于他们使用的内部方法。
对于给定的服务器,您需要多久执行一次此操作?初始安装后,您的更新计划/方法是什么(例如 yum 等)?
通过使用标准安装,您无需负责整个系统的 QA [标准系统 + 您的自定义内容],只负责您的自定义内容。
例如,Fedora不鼓励任何“完全安装”。他们现在更喜欢“实时启动”并从 Internet 方法安装。
原因之一是创建了完整的安装磁盘 [带有大量 QA]。但是,它是静态的。如果软件包有更新,完整安装将安装旧的、未打补丁的版本。
我曾经使用过它,然后在重新启动后进行了 yum 更新。完整安装盘安装了一些在发布后一两周内变得过时/不兼容的东西。他们与更新发生冲突,事情变得破碎了。我不得不手动干预。实时启动安装将下载最新的[并且可能是大多数错误修复的]软件包,这种情况发生的可能性要小得多。
在 fedoraproject.org 站点上,您可以找到有关创建 live CD 和/或 USB 的文档。他们甚至可以向您展示如何添加一些自定义文件。其他发行版站点将有类似的文档。
顺便说一句,自 1981 年以来我一直在做操作系统安装工具包,所以以上所有内容都来自经验。我从头开始创建它们并从发行版中破解了它们。
可以做到吗?当然。你真的想这样做还是应该这样做?也许。请注意您在维护方面所做的工作。