如何开始一个新的 Linux 发行版?

pep*_*uan 30 distros linux

我和我的一些朋友有兴趣开始一个新的 Linux 发行版。我们怎么做?我们需要计划什么?

背景故事

我代表一个 Linux 系统管理员/实现者社区,他们的特殊需求包括:

  • 特定的“精益”内核配置
  • 适合我们“现场需求”的包管理
  • 针对我们的“用例”优化的二进制包
  • 无X系统

重点:我们需要一个专门配置的生产质量 Linux 发行版,专门作为半虚拟化生产服务器运行。与其在每次需要 VM 化服务器都跳过所有的圈套和循环,我们更喜欢一个针对其环境优化的半准备系统。

由于这些 VM 将是生产服务器,稳定性是必须的,老实说,我们目前知道的可用包管理系统并不能提供保证。Zypp并且Conary是最接近我们需求的,但仍然遗漏了一些点。

小智 22

你可能想看看Linux From Scratch

Linux From Scratch (LFS) 是一个项目,它为您提供完全从源代码构建您自己的定制 Linux 系统的分步说明。

  • 从 LFS 开始并在其上构建整个框架,如您所描述的,实际上是“启动自己的 linux 发行版”的定义。 (5认同)
  • @pepoluan:没有这方面的指南。一旦你安装了一个正在运行的 shell 和核心工具,你就有了一个操作系统。其余的你要么从其他发行版复制,要么重新发明一切。无论哪种方式,创建一个新的发行版都需要大量的工作,而且没有任何简单的答案来说明如何去做。 (2认同)
  • @pepoluan 我敢打赌有战争故事,只是包装不那么干净。例如,查看各种发行版早期的邮件列表档案。 (2认同)

Law*_*ceC 9

您将需要一个最小的运行系统,可能来自另一个发行版,以“引导”您自己的发行版,至少足以让 gcc 或另一个 C 编译器运行。然后,您需要首先确定哪些核心库(包括 libc)和软件构成了系统的基本“未安装包”状态。然后,获取这些库和软件的源代码并编译它们,确保所有软件都能找到它需要的库,然后开始创建您的低级基础环境。

基本上,你的引导环境将只不过是一个正在运行的内核,你需要得到一个基本的shell,C编译器的绝对最小值,基本的东西一样多rmcptar和这样的工作的东西。在此之后您应该启动并运行的下一件事是 Perl。创建基本系统后,您需要将其持久化并创建一些引导脚本,这些脚本将系统从初始引导转换为带有编译器的可用 shell。

然后你需要设计/编写一个包系统和格式,并将源代码下载到你要打包的软件中,编译和打包,并为你的包设计一个健壮的分发系统。这一切都不是小事。祝你好运。


bal*_*lki 0

如果您只需要一组默认应用程序,您可以使用一些简单的工具自定义现有发行版(例如 ubuntu)。http://maketecheasier.com/reconstructor-creating-your-own-ubuntu-distribution/2008/07/05