当您有多台计算机需要跟踪同一份源代码树, 如果让它们各自都建立一份副本, 那么将会是一个及其浪费的磁盘空间, 网络带宽和 CPU 资源的行为。 我们可以使用其中一台计算机来完成绝大部分这些工作, 然后其他计算机通过 NFS 方式连接到这台计算机来完成剩下的工作。 本章将简述几种使用这种方式工作的方法。
首先, 我们需要选定一批将运行相同的二进制代码的计算机,
这里我们称它们为 编译客户机 (build set) 。
它们可以运行着各自的自定义内核, 但是他们的用户层必须运行着同一套二进制程序
(译者注: 运行相同版本的 world )。
然后, 在这批计算机中选择一台计算机用于构建系统与内核的计算机,
这里我们它为 编译主机 (build machine) 。
理想情况下, 它应该是一台有足够空闲 CPU 资源来执行
make buildworld
和 make buildkernel
指令的计算机。 接着,
您还需要选择一台用于对即将投入生产的应用做测试工作的计算机,
这里我们称它为 测试主机(test machine) 。
它 必须 是一台日常常用的计算机, 它可以由编译主机担当,
也可以专门选择一台。
这里, 所有编译客户机都需要从同一台计算机上挂载
/usr/obj
和 /usr/src
。
理想情况下, 这些目录应该位于编译主机上的两个不同的磁盘驱动器上,
编译主机也是可以通过 NFS 实现将这两个目录分布到两个磁盘驱动器上。
如果您有多个编译客户机, 那么 /usr/src
应该保存在编译主机上, 其他计算机通过 NFS 共享这个目录。
最后, 需要保证所有编译客户机使用与编译主机相同的
/etc/make.conf
和 /etc/src.conf
文件。
这是因为, 编译主机构建的基本系统将会应用于所有编译客户机。
此外, 编译主机还应在 /etc/make.conf
中设置
KERNCONF
参数, 并在里面列出所有编译客户机的
KERNCONF
, 同时将自己的内核配置文件列在最前面。
如果希望构建所有编译客户机的内核, 则
/usr/src/sys/arch/conf
中必须包含所有编译客户机的内核配置文件。
在编译主机根据 Section 23.7.8.2, “编译基本系统”
中的内容构建完内核和 world (但不安装)。 就可以进入测试主机安装刚构建的内核,
如果您是通过 NFS 挂载 /usr/src
和
/usr/obj
的情况, 则需要进入单用户模式后启动网络,
然后挂载它。 最简单的方法是在多用户模式下执行
shutdown now
命令, 直接切换到单用户模式,
一旦完成, 就可以像通常情况那样运行安装内核, world 和
mergemaster
命令了。 全部完成后,
就重启进入正常的多用户模式了。
确认一切在测试主机上都能正常工作后, 就可以相同方式在所有编译客户机上安装新软件。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.