FreeBSD-STABLE 居然是开发用的分支,我一直搞错了好多年...!

本文讨论了FreeBSD系统中CURRENT、STABLE及RELEASE分支的选择问题,强调在生产环境中应使用RELEASE版本,并介绍了不同分支的特点及适用场景。
 
我一直认为对于FreeBSD的系统来说,发行版的稳定性是:CURRENT < RELEASE < STABLE,所以在灌完系统后立刻 cvsup 到对应
的 STABLE 版本去...


这几天刚好碰到 Pengfei 也在看 FreeBSD 的 cvsup 管理部分,他正在疑惑生产系统上面是用 STABLE 还是用 RELEASE 的好,还几乎
要向 CURRENT 靠拢... 我听了后立刻进行“镇压”,强调说:要以STABLE的名义行事,还“忽悠”他说不要看网络上那些被人转手好几
遍的小报技术文章...。


今天早上到公司,收到 Pengfei 的邮件中又提到此问题,我看到出处是《FreeBSD用户手册》,眉宇之间立刻拧成了一个疙瘩,仔细
再次阅读了“
23.2 FreeBSD-CURRENT 和 FreeBSD-STABLE 的对比”。一看之下,立刻意识到了问题的严重性...!

摘录自《FreeBSD 用户手册》

  如果您有兴趣追随 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 发行版, 并使用发行版提供的二进制更新机制来在发行版之间完成迁移。


带着疑问,去请教一下 delphij ,得到的答复再次让自己寒到死...原来自己犯错好多年...

的确:
    <1> CURRENT & STABLE 都是属于开发的代码分支;
    <2> CURRENT 并不会保证随时都可用,属于最前沿的开发分支;
    <3> 代码进入 STABLE 前都会在 CURRENT 分支上面开发完成;
    <4> 生产环境(Production Environment)推荐使用 RELEASE 的发行版;

不要被 STABLE 的字面意思和习惯给迷惑了,英文中的原意如下,看来我们平时翻译的时候多有歧义:

1. not changing: steady and not liable to change, Prices have remained stable.

2. not likely to move: steady or firm and not liable to move

3. not excitable: having a calm and steady temperament, rather than being excitable or given to apparently irrational behavior

4. chemistry physics not readily undergoing change: not subject to changes in chemical or physical properties

5. physics not naturally radioactive: incapable of becoming a different isotope or element by radioactive decay

说了这么多,我还是跑小黑屋反省去了... 感谢一下 Pengfei,俺要学习他的治学精神...




目录 第I部分. 基础 第1章 介绍 1.1 在 FreeBSD 上进行开发 1.2 BSD 理念 1.3 指导性架构设计原则 1.4 /usr/src的层次结构 第2章 编程工具 2.1 概述 2.2 介绍 2.3 编程初步 2.4 用 cc 编译 2.5 Make 2.6 调试 2.7 使用 Emacs 作为开发环境 2.8 补充阅读 第3章 安全的编程 3.1 提要 3.2 安全的设计方法 3.3 缓冲区溢出 3.4 SetUID 问题 3.5 限制你的程序环境 3.6 信任 3.7 竞态条件 第4章 本地化与国际化 - L10N 和 I18N 4.1 编写适应国际化的应用程序 4.2 使用 POSIX.1 本地语言支持 (NLS) 的本地化消息 第5章 源代码树指南和维护发展策略 5.1 Makefile 中的 MAINTAINER 5.2 第三方软件 5.3 妨碍性的 (Encumbered) 文件 5.4 共享库 第6章 回归与性能测试 6.1. 微性能测试列表 第II部分. 进程间通信 第7章 套接字 7.1 概述 7.2 联网和多样性 7.3 协议 7.4 套接字模型 7.5 重要的套接字函数 7.6 辅助函数 7.7 并发服务器 第8章 IPv6内部 8.1 IPv6/IPsec的实现 第III部分. 内核 第9章 联编并安装 FreeBSD 内核 9.1 以 “传统” 方式联编内核 9.2 以 “新” 方式联编内核 第10章 调试内核 10.1 如何将内核的崩溃转存数据保存成文件 10.2 使用 kgdb 调试内核的崩溃转存 10.3 使用 DDD 调试崩溃转存文件 10.4 使用 DDB 进行在线内核调试 10.5 使用远程 GDB 进行联机内核调试 10.6 如何调试控制台驱动 10.7 调试死锁 10.8 用于调试的内核选项术语表 第IV部分. 系统结构 第11章 x86 汇编语言 11.1 概述 11.2 工具 11.3 系统调用 11.4 返回值 11.5 建立可移植的代码 11.6 编写第一个程序 11.7 编写 UNIX® 过滤程序 11.8 缓存 I/O 11.9 命令行参数 11.10 UNIX® 中的环境 11.11 文件处理 11.12 One-Pointed Mind 11.13 Using the FPU 11.14 忠告 11.15 致谢
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值