19.2. FreeBSD-CURRENT 和 FreeBSD-STABLE 的对比

FreeBSD有两个开发分支:FreeBSD-CURRENT 和 FreeBSD-STABLE。 这部分将对每个做些说明,并且讲述您的系统如何与各自的树一同保持最新。 先讨论 FreeBSD-CURRENT,然后是 FreeBSD-STABLE。

19.2.1. 使用最新的 FreeBSD CURRENT

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

19.2.1.1. FreeBSD-CURRENT 是什么?

FreeBSD-CURRENT 是 FreeBSD 的发展前沿。 包括了在下一个官方发行的软件中可能存在, 也可能不存在的发展、实验性变化、传统机制。由于许多 FreeBSD 开发者每天编译 FreeBSD-CURRENT 源代码,有时这些代码会是不能编译的。 虽然这些问题会很快解决,但不管是 FreeBSD-CURRENT 引起的破坏还是急切的泛涵性 (greatly desired functionality) 都将是在您获取源代码的的时候值得注意的!

19.2.1.2. 谁需要 FreeBSD-CURRENT?

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

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

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

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

19.2.1.3. FreeBSD-CURRENT 不是什么?

  1. 因为您听说里边有些新而酷 (cool) 的功能, 而且您想在首先在您的天地 (block) 里拥有它, 所以紧紧跟随、不放过预先发行的每一个字节。 由于是系统中第一个使用新功能的人, 也就意味着在系统里产生新问题的您是第一个。

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

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

19.2.1.4. 使用 FreeBSD-CURRENT

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

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

    要加入这些列表,或其它可能的列表,请访问 http://lists.FreeBSD.org/mailman/listinfo ,并且点击您想订阅的列项。 关于其它步骤的说明那里有提供。

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

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

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

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

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

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

19.2.2. 使用最新的 FreeBSD STABLE

19.2.2.1. FreeBSD-STABLE 是什么?

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

19.2.2.2. 谁需要 FreeBSD-STABLE?

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

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

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

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

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

19.2.2.3. 使用FreeBSD-STABLE

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

    cvs-all 列表允许您看到每一个变化的提交记录条目, 这些变化是随着由可能的副作用引起的任何相关信息而产生的。

    要加入这些列表或其他可用的,访问 http://lists.FreeBSD.org/mailman/listinfo 并点击您希望订阅的列表。关于其它步骤的说明可以在那里看到。

  2. 如果安装一个新的系统又想它尽可能稳定的话,您可以仅仅从 ftp://snapshots.jp.FreeBSD.org/pub/FreeBSD/snapshots/ 获取最新的分支快照并象其它发行版一样安装它。或者您可以从镜像站点安装最新的 FreeBSD-STABLE 发行版, 并按照下边的说明升级您的系统到最新的 FreeBSD-STABLE 源码。

    如果您已经在运行以前的 FreeBSD 发行版,并希望通过源码方式升级, 那么您可能轻易的从 FreeBSD 镜像站点完成。 有两种方式:

    1. 与称作 standard-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, 可能让您在其它循序渐进的过程中保持更新, 这在我们向下一发行版转移时是很有必要的。

Notes

[1]

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