25.5. 追踪开发分支

FreeBSD 有两个开发分支: FreeBSD-CURRENT 和 FreeBSD-STABLE。 这一章节将对每个分支作相应介绍与如何保持你的系统更新。 我们将先介绍 FreeBSD-CURRENT 然后是 FreeBSD-STABLE。

25.5.1. 使用最新的 FreeBSD CURRENT

这里再次强调, FreeBSD-CURRENT 是 FreeBSD 开发的 最前沿。 FreeBSD-CURRENT 用户要有较高的技术能力, 并且应该有能力自已解决困难的系统问题。 如果您是个 FreeBSD 新手, 那么在安装之前最好三思。

25.5.1.1. FreeBSD-CURRENT 是什么?

FreeBSD-CURRENT 是 FreeBSD 的发展前沿。 包括了在下一个官方发行的软件中可能存在, 也可能不存在的发展、 试验性改动、 以及过渡性的机制。 尽管许多 FreeBSD 开发者每天都会编译 FreeBSD-CURRENT 源代码, 但有时这些代码仍然会是不能编译的。 虽然这些问题会很快解决, 但 FreeBSD-CURRENT 是带来破坏还是您正希望的功能性改善, 很可能完全取决于您获取源代码的的时机!

25.5.1.2. 谁需要 FreeBSD-CURRENT?

FreeBSD-CURRENT 适合下边三种主要兴趣团体:

  1. FreeBSD 社区的成员: 积极工作在源码树的某部分的人和为保持 最新 为绝对需求的人。

  2. FreeBSD 社区的成员: 为促使 FreeBSD-CURRENT 保持尽可能的健全而愿花时间去解决问题的积极的测试者; 以及那些愿意提出关于 FreeBSD 变化和总体方向的建设性建议并且提供补丁实现它们的人们。

  3. 那些只是想关注或为了参考目的使用当前 (current) 源码的人们 (如,为了阅读,而不是执行)。 这些人也偶尔做做注释或贡献代码。

25.5.1.3. FreeBSD-CURRENT 不是什么?

  1. 追求最新功能, 您听说里面有一些很酷的新功能, 并希望成为您周围的人中第一个尝试它们的人。 尽管您能够因此首先了解到最新的功能, 但这也意味着在出现新的 bug 时您也首当其冲。

  2. 修复错漏的快捷方式。任何 FreeBSD-CURRENT 的既定版本在修复已知错漏的同时又可能会产生新的错漏。

  3. 无所不在的官方支持。 我们尽最大努力在3个合法的 FreeBSD-CURRENT 组之一真诚给人们提供帮助,但是我们 没有时间提供技术支持。 这并不是因为我们是那种不喜欢帮助人解困的无耻之徒 (如果我们是的话,就不会制作 FreeBSD 了)。 我们不能每天简单地回复上百的消息,而且 我们继续发展 FreeBSD! 在改善 FreeBSD 和回复大量关于实验代码的问题之间如果要做个选择的话, 开发人员会选择前者。

25.5.1.4. 使用 FreeBSD-CURRENT

  1. 加入 freebsd-currentsvn-src-head 列表。 这个不仅仅是个好主意,而且很 重要。如果您不去 freebsd-current, 您就不会看到人们所做的关于系统当前状态的说明, 这样您就有可能在别人已经发现并解决了的一大堆问题面前难倒。 更重要的是您会错过一些重要的公告---对于您的系统安全可能是至关重要的。

    svn-src-head 列表允许您看到每个变化的提交记录, 因为这些记录与其它相关信息是同步的。

    要加入这些列表,或其它可能的列表,请访问 http://lists.FreeBSD.org/mailman/listinfo ,并且点击您想订阅的列项。 关于其它步骤的说明那里有提供。 如果你有兴趣追踪整个原代码树的变更记录, 我们建议你订阅 svn-src-all 邮件列表。

  2. 从FreeBSD 镜像站点 获取源码。 您有两种方式选择:

    1. 与称作 standard-supfilesupfile 一起使用 cvsup,这个可以从 /usr/share/examples/cvsup得到。 这是最被推荐的方式,因为它允许您一次获取整个集合, 以后就只取更改过的部分。许多人从 cron 运行 cvsup,以保持他们的源码自动更新。 您须要定制上边的 supfile 样本,并且配置 cvsup 以适应您的环境。

      注意:

      standard-supfile 例子是为追踪指定的 FreeBSD 安全分支而指定的, 而不是 FreeBSD-CURRENT。 你需要编辑这个文件并把如下这行:

      *default release=cvs tag=RELENG_X_Y

      替换为:

      *default release=cvs tag=.

      可以参阅手册中的 CVS Tags 章节获得更多可用 tag 的详细说明。

    2. 使用工具 CTM。 如果您的连接性能不太好(高价连接或只能通过电子邮件存取), CTM 是个选择。 但这也颇有争议并且常常得到到坏文件。因此很少使用它, 这也注定了不能长期用它来工作。对于使用 9600 bps 或更快连接的人,我们推荐使用 CVSup

  3. 如果您获取源码是用于运行,而不只是看看,那么就获取 整个 FreeBSD-CURRENT,不要选部分。 这样做的原因是源码的大部分都依赖于其他部分, 要是您试着只编译其中一部分的话,保证您会陷入麻烦。

    在编译 FreeBSD-CURRENT 之前,请仔细阅读 /usr/src 里的 Makefile 文件。 尽管是部分的升级过程,您至少也要首先安装新的内核和重建系统。阅读 FreeBSD-CURRENT 邮件列表 邮件列表和 /usr/src/UPDATING, 会让您在其它循序渐进的过程中保持最新, 这对于我们向下一个发行版转移是很有必要的。

  4. 热心一点!如果您正运行 FreeBSD-CURRENT, 我们很想知道您关于它的一些想法, 尤其是关于错漏修复或增进的建议。 非常欢迎带有代码的建议!

25.5.2. 使用最新的 FreeBSD STABLE

25.5.2.1. FreeBSD-STABLE 是什么?

FreeBSD-STABLE 是我们的发展分支,我们的主要发行版就由此而来。 这个分支会以不同速度变化,并且假定这些是第一次进入 FreeBSD-CURRENT 进行测试。然而,这 仍然 是个发展中的分支,这意味着在一定的时候,FreeBSD-STABLE 源码可能或不可能满足一些特殊的要求。 它只不过是另一个工程发展途径,并不是终端用户的资源。

25.5.2.2. 谁需要 FreeBSD-STABLE?

如果您有兴趣追随 FreeBSD 的开发过程或为其做点贡献, 尤其是和下一个 非计划 的 FreeBSD 发行版有关时, 您应该考虑采用 FreeBSD-STABLE。

尽管安全更新也会进入 FreeBSD-STABLE 分支,但您并不 必须 使用 FreeBSD-STABLE 来达到这样的目的。 每一个 FreeBSD 的安全公告都会解释如何修复受到影响的发行版中的问题 [12],而因为安全原因而去采用一个开发分支显然可能会同时引入一些不希望的修改。

尽管我们尽力确保 FreeBSD-STABLE 分支在任何时候都能够正确编译和运行, 但没有人能够担保它在任何时候都总可以。 此外, 尽管代码在进入 FreeBSD-STABLE 之前都是在 FreeBSD-CURRENT 上完成开发, 但使用 FreeBSD-STABLE 的人要比使用 FreeBSD-CURRENT 的更多。 有证据显示, 犄角旮旯里的各种问题有些时候仍然会由于在 FreeBSD-CURRENT 不那么明显 而在 FreeBSD-STABLE 暴露出来。

基于这些原因, 推荐您盲目地追随 FreeBSD-STABLE, 并且, 在粗略地测试过代码之前不要更新任何生产服务器到 FreeBSD-STABLE 也非常重要。

如果您没有用于完成这些工作的资源, 我们推荐您使用最新的 FreeBSD 发行版, 并使用发行版提供的二进制更新机制来在发行版之间完成迁移。

25.5.2.3. 使用FreeBSD-STABLE

  1. 加入 freebsd-stable 列表。让您随时了解可能出现在 FreeBSD-STABLE 里的build 依赖性或其它需要特别注意的问题。 当开发员正在考虑某些有争议的修复或更新时, 他们就会在这个邮件列表里发表声明,给用户机会回应, 看他们对于提出的变化是否还有什么问题。

    加入相关的 SVN 列表来追踪你所关心的分支。比如,如果你在追踪 7-STABLE 分支,加入 svn-src-stable-7 列表。 这样每次这个分支上有改动的时候就能让你看到提交记录, 还包括了修改可能引起的副作用之类的相关信息。

    要加入这些列表或其他可用的,访问 http://lists.FreeBSD.org/mailman/listinfo 并点击您希望订阅的列表。关于其它步骤的说明可以在那里看到。 如果你有兴趣追踪整个原代码树的变更记录, 我们建议你订阅 svn-src-all 邮件列表。

  2. 如果您正安装一个新系统, 并希望它运行每月从 FreeBSD-STABLE 编译的快照, 请察看 Snapshots 网页以了解更多信息。 另外, 也可以从 镜像站点 安装最新的 FreeBSD-STABLE 发行版, 并按照其中的说明将系统更新到最新的 FreeBSD-STABLE 源代码。

    如果您已经在运行较早的 FreeBSD 版本, 并希望通过源代码方式升级, 则可以通过 FreeBSD 镜像站点 来完成。 这可以通过两种方式来进行:

    1. 与称作 stable-supfilesupfile 一起使用 cvsup,这个可以从 /usr/share/examples/cvsup 得到。 这是最被推荐的方式,因为它允许您一次获取整个集合, 以后就只取更改过的部分。许多人从 cron 运行 cvsup,以保持他们的源码自动更新。 您须要定制上边的 supfile 样本,并且配置 cvsup 以适应您的环境。

    2. 使用工具 CTM。 如果您的连接性能不太好(高价连接或只能通过电子邮件存取), CTM 是个选择。 但这也颇有争议并且常常得到到坏文件。因此很少使用它, 这也注定了不能长期用它来工作。对于使用 9600 bps 或更快连接的人,我们推荐使用 CVSup

  3. 本质上说,如果您需要快速存取源码并且不计较通信宽带的话,可以使用 cvsupftp。否则,就使用 CTM

  4. 在编译 FreeBSD-STABLE 之前,请仔细阅读 /usr/src 里的 Makefile。 您至少应该安装一个新的内核并重建系统, 首先做为升级过程的一部分。阅读 FreeBSD-STABLE 邮件列表 邮件列表和 /usr/src/UPDATING, 可能让您在其它循序渐进的过程中保持更新, 这在我们向下一发行版转移时是很有必要的。



[12] 这也不总是正确。我们不可能永远支持 FreeBSD 的旧发行版, 尽管我们会在发布之后支持他们数年之久。 关于 FreeBSD 目前对于旧发行版的支持政策的完整描述, 请参见 http://www.FreeBSD.org/security/

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.