通常,你会在某个地方(比如 GitHub 存储库)找到源代码,然后运行一些 CI/CD 管道来创建发布。源代码在哪里?我做了一些研究,很多人说 Ubuntu 发行版只是程序和配置的集合,拥有我所描述的存储库并没有多大意义,但这不是我要问的。
当您使用 Node.js 开发 Web 应用程序时,您的依赖项会列在名为 package.json 的文件中。构建 Web 应用程序时,您会下载依赖项。我假设 Ubuntu 也会发生类似的事情:必须有一个文件列出发行版必须包含的所有程序以及下载每个二进制文件的 URL。该文件在哪里?下载它们的脚本又在哪里?在 GitHub 中,您有一个 .yaml 文件,其中包含不同的 GitHub 操作,您可以查看该文件以了解创建发行版的具体步骤。
我应该在哪里查看才能准确了解 Ubuntu iso 是如何创建的?假设我有责任创建下一个版本。我该怎么做?我最担心的一件事是:如果 Ubuntu 是开源的,那么所有这些记录在哪里?
这是我假装用这篇文章回答的问题列表。如果这篇文章因此被认为太宽泛而被关闭,我会在不同的帖子中发布这些问题:
- 当您“下载 Ubuntu”时下载的 Ubuntu iso 文件究竟由什么组成?它只是 Debian 但包含更多软件包,还是还包含其他东西?
- 我必须遵循哪些具体步骤才能创建与 Ubuntu 开发人员完全相同发布的 iso 文件?
- 如果 Ubuntu 开发人员使用 Github Actions 创建 Ubuntu 版本,那么我会检查一个工作流 yaml 文件,以了解创建 iso 文件所遵循的步骤。如果没有这样的东西,他们用什么来代替?我在哪里可以找到他们使用的东西?
- Ubuntu 发行版包含的每个软件包都是独立维护的,但是包含用于指定包含在 iso 文件中的这些包的清单文件的 Git 存储库在哪里?
以下是一些背景信息:通常,当我想了解某些软件的工作原理时,我会从源代码构建软件。从源代码构建所遵循的步骤通常位于 README 或 CONTRIBUTING 文件中。当我找不到这些文件时,我会查看他们用来配置管道以创建版本的任何 yaml 文件。我想知道像 Ubuntu 这样的操作系统是如何创建的,所以我开始寻找这样的存储库,但一无所获。我刚刚了解到 iso 包含的软件包是在清单文件中指定的,例如这个,但我仍然找不到该文件的 Git 存储库,我不知道这是否与此有关,或者是否还有更多涉及创建 Ubuntu iso 的内容。我几乎不相信您只需要清单文件,感觉从 Debian 发行版安装其中指定的所有软件包不会自动将 Debian 变成 Ubuntu。
我碰到这个帖子,这让我想到本网站如果那是 Ubuntu 的源代码,我该如何从该网站的内容生成 iso 文件?我找不到任何解释这一点的 README 或 CONTRIBUTING 文件。