如果您有多台机器想跟踪同样的源码树, 那么让它们都下载源码并重建所有东西,看起有点浪费资源: 磁盘空间、网络带宽以及 CPU 周期。 解决的办法是让一台机器处理大部分的工作,而其它的机器通过 NFS 挂接 (mount) 这些工作。这部分列举了一种这样做的方法。
首先,确定一批机器,运行的二进制代码是同一套---我们称作
构建集群 (build set)。 每台机器可以使用不同的定制内核,
但它们运行的是相同的用户区二进制文件(userland binaries)。
从这批机器中选择一台机器做为 构建机器(build machine)。
这将是用于构建(build)系统和内核的机器。想像一下,它应该是一台快速的机器,
有足够的空余的 CPU 来执行make buildworld
。
您也想要选一台机器做为 测试机器(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
既然所有的妥当了,就准备构建所有的东西。如第 25.7.7.2 节 “编译基本系统”中描述的一样在“构建机器”上构建内核和系统,
但是什么也不安装。在构建结束后,转到“测试机器”上,
安装您刚构建的内核。如果这台机器通过 NFS 挂接了
/usr/src
和 /usr/obj
,
在您重启到单用户模式里,您需要启动网络然后挂接他们。
最简单的方式是启动到多用户模式下,然后执行 shutdown now
转到单用户模式。一旦进入,您就可以安装新的内核和系统,并执行
mergemaster
,就像平常一样。完成后,
重启返回到一般多用户模式操作这台机器。
在您确信所有在 “测试机”里都工作正常后, 就使用相同的过程在 “构建集群”里的其它机器里安装新的软件。
本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读
文档,如不能解决再联系
<questions@FreeBSD.org>.
关于本文档的问题请发信联系
<doc@FreeBSD.org>.