GLEP 19: Gentoo 稳定 Portage 树

作者 Kurt Lieber <klieber@gentoo.org>
类型 标准跟踪
状态 已撤回
版本 1
创建 2004-01-26
最后修改 2014-01-17
发布历史 2004-01-29, 2004-11-02, 2004-12-07, 2006-10-10
GLEP 源码 glep-0019.rst

状态

作者已撤回。 “如果有人想接手,那就更好了,但他们可能应该从一个新的 glep 开始。”

摘要

本 GLEP 旨在提出对 Portage 树的一系列更改,这些更改对于在稳定性和可预测性至关重要的领域使用 Gentoo 是必要的,包括企业环境中的服务器、关键任务工作站和其他此类安装。

拟议的解决方案涉及在 Portage 中创建一个单独的树,该树的更新频率远低于常规树。除了定期更新外,此树只会更新关键的错误修复和安全补丁。

动机

企业用户通常比获得最新软件包或功能更重视稳定性和可预测的升级路径。从历史上看,Gentoo Linux 由于 Portage 树的动态性质,一直无法提供这样的环境。

规范

Gentoo 基础设施团队需要在我们的 rsync 镜像系统上提供一个额外的 Portage 树。这棵新树将容纳与稳定树关联的 ebuild。它还影响所有负责创建和更新 ebuild 的 Gentoo 开发者,因为他们需要将稳定树的 ebuild 标记集成到他们的正常开发流程中,无论是季度发布周期还是非周期性错误和安全修复。

Gentoo 文档团队也会受到影响,因为他们将负责更新安装文档以考虑这些新功能。

基本原理

在 2004 年 1 月 26 日的 gentoo 管理员会议上讨论了将“稳定”树添加到 Portage 的各种方法的基本概述。似乎已经达成共识,即需要这样的解决方案,并且分支 gentoo-x86 存储库是实现这一目标的适当方法。最大的分歧围绕着如何将特定的 ebuild 针对稳定树中的包含。

一个建议的解决方案是简单地分支 CVS 树,让开发者在两个独立的分支中工作;一个用于稳定树,另一个用于传统树。然而,人们认为这在实践中将过于繁琐。

另一个建议是让一小群专门的 gentoo-server 开发人员负责生成稳定树的内容,这将为添加到稳定树的 ebuild 提供更多控制和质量保证。虽然这对于少量 ebuild 可能有效,但很可能这种模式的规模不足以允许稳定树中包含大量 ebuild,而且随着时间的推移,项目将变得资源受限,无法满足未来的截止日期。

虽然本 GLEP 的原始草案要求创建一个稳定关键字,但我们已经放弃了这个想法,转而创建了一个自定义配置文件,它将用于跟踪软件包和版本的子集。

实现

本 GLEP 将创建一组新的级联配置文件(每个版本一个,每年不超过两个),这些配置文件将包含软件包的子集,包括版本。此配置文件将“锁定”Gentoo Linux 盒子到特定的一组软件包,并且只会针对安全更新以及在极少数情况下针对重大错误修复进行更新。

由于此配置文件将是级联的,因此其他开发者可以选择创建自己的配置文件,其中包含“主”稳定树中没有的软件包的子集,并将这些软件包包含在整体稳定配置文件中。这些情况将按个案处理。

初始版本将仅限于 x86,但会鼓励其他人为其他架构提供单独的稳定配置文件。预计任何为任何架构或 Gentoo 版本提供稳定树的努力都将遵循本 GLEP 的基本概述,以确保对用户的一致性。

除了自定义配置文件之外,本 GLEP 还将创建一个单独的 rsync 存储库“gentoo-stable-portage”,该存储库将在 rsync.gentoo.org 轮换中的所有服务器上可用。此存储库将与主要的 gentoo-portage 存储库完全相同,只是从填充树的 rsync 选项中删除了 --delete 标志。这将确保使用稳定配置文件的用户不必担心其软件包的 ebuild 消失。

稳定配置文件将以 N - 2 的方式维护。也就是说,我们将为当前版本以及之前的两个版本维护一个稳定配置文件。根据 2005 年的预期发布计划,这将导致每个配置文件支持大约 18 个月。未来版本的稳定 portage 树可能会寻求延长这些配置文件的寿命。

向后兼容性

此处提出的所有功能都是对现有流程和功能的新增内容。对现有功能和功能没有影响。