Ubuntu是如何基于Debian的?

Ubuntu是如何基于Debian的?

Linux Mint 基于 Ubuntu。 Ubuntu 基于 Debian。像这样,还有其他几个基于 Ubuntu、Debian、Slackware 等的 Linux 发行版。令我困惑的是,这意味着什么,即一个 Linux 发行版基于其他发行版。它们是如何制作的?

答案1

扎克(Zack)有一个很棒的图表解释了他的UDS-P 演讲幻灯片

Ubuntu 的源码

基本上,每个 Ubuntu 周期,直到Debian 导入冻结,在 Ubuntu 中未修改的源代码包每天都会从 Debian 复制到 Ubuntu(74% 分支)。在 Debian 和 Ubuntu 中都已修改的软件包手动获取合并(Patch 分支),通常由最后一次接触 Ubuntu 中的包的开发人员完成。

一些核心软件包(内核、大部分桌面和其他部分)根本不是来自 Debian,而是直接来自 Upstreams(11% 分支)

因此,Ubuntu 可以维护自己的核心软件包集,并从大量的 Debian 软件包中受益。

答案2

Ubuntu 使用相同的软件包管理系统(deb 和 apt),并且在每个开发周期中都会从 Debian 中提取最新的软件包,然后根据 Ubuntu 的具体情况进行调整,并在必要时添加更多功能和补丁。他们还将更改推送回 Debian,并且开发人员通常是 Ubuntu 和 Debian 开发人员。

Mint 反过来对 Ubuntu 软件包做了同样的事情(更新:尽管 Mint 似乎没有贡献那么多或根本没有贡献)

答案3

除了名称之外,还有很多东西可以定义分布。打包系统(deb、rpm...)、标准环境(例如用作标准的“init”类型)以及许多其他内容,例如发布计划策略、主要目标用户等。请注意,共享某些核心工具不会使两个发行版成为“兄弟姐妹”。以 Red-Hat 和 SuSE 为例:在 @Zenklys 链接的图表上,您可以看到 SuSE 是 Slackware 的早期衍生品,但他们借用了 Red-Hat 的 RPM 打包系统,我想不是要重新发明车轮。

其中大部分事情是某人(公司、个人或发展中社区)为您做出的决定。有些发行版彼此之间有很大不同,并且在起源上几乎没有任何共同点(Debian 和 Red-Hat 是早期的两个例子......),是实现工作环境的并行努力的结果,但其他发行版的诞生只是因为相当大的社区同意现有发行版的某些方面可以以不同的方式完成,例如更短(或更大!)的发布周期,或者可能使发行版不那么“通用”并专注于某些方面,例如媒体创建(您预安装工具,尝试为特定事物提供更好/更简单的硬件配置...);或者当公司决定他们可以通过针对某些目标受众调整发行版来开展业务时。

从这里开始,我们继续使用 Ubuntu,但请记住,这个过程在各处都是相似的。

当然,采用“衍生”方式意味着您从第 0 天开始使用一个工作系统。您的工作将集中于进行所需的更改,并针对您并不真正想要的部分与“父”版本保持同步继续努力。

从这个意义上说,Ubuntu 是 Debian 的衍生品:他们采用了一个工作发行版并决定了许多事情。例如:

  • 默认(且官方支持)桌面环境和主题。
  • 强调非 root 用户能够访问所有受限区域(例如硬件设置)
  • 集成工具,有时还开发新工具,以实现他们的目标。

在某个时候,他们开始做出更基本的决定,比如改变关键的子系统(例如,选择新贵),或者工具的默认版本,比如 Ubuntu 严重依赖的 Python 版本。

其中一些更改可能最终不会在原始发行版上发生,或者只是需要更长的时间......或者相反,您不喜欢父发行版中所做的更改,并且您会安排一些事情,以便您的发行版保持与原来相同的方式(就像 Ubuntu 迁移到 Gnome 3 作为默认值时一样)。

话又说回来,在某些时候 Ubuntu 用户觉得他们不满意全部为它们所做的选择,因此您最终会得到像 Kubuntu 或 Xbuntu 这样的衍生品,它们可能(也可能不会)最终在原始项目中达到某种“官方”状态。

Ubuntu 与 Debian 保持了一定程度的反馈,使您可以轻松地将知识从一个版本转移到另一个版本,但这并不需要对所有衍生发行版都是如此。

等等......但答案现在已经很长了:P

相关内容