FreeBSD 使用手册
上一页 | 第24章 　更新与升级 FreeBSD | 下一页

# 24.8 跟踪多台机器

贡献者Mike Meyer.

如果您有多台机器想跟踪同样的源码树， 那么让它们都下载源码并重建所有东西，看起有点浪费资源： 磁盘空间、网络带宽以及 CPU 周期。 解决的办法是让一台机器处理大部分的工作，而其它的机器通过 NFS 挂接 (mount) 这些工作。这部分列举了一种这样做的方法。

## 24.8.1 准备

首先，确定一批机器，运行的二进制代码是同一套---我们称作 构建集群 (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` 里一定要有每台机器的内核配置文件，如果它想构建它们的内核的话。

## 24.8.2 基本系统

既然所有的妥当了，就准备构建所有的东西。如第 24.7.7.2 节中描述的一样在“构建机器”上构建内核和系统， 但是什么也不安装。在构建结束后，转到“测试机器”上， 安装您刚构建的内核。如果这台机器通过 NFS 挂接了 `/usr/src` 和 `/usr/obj`， 在您重启到单用户模式里，您需要启动网络然后挂接他们。 最简单的方式是启动到多用户模式下，然后执行 `shutdown now` 转到单用户模式。一旦进入，您就可以安装新的内核和系统，并执行 `mergemaster`，就像平常一样。完成后， 重启返回到一般多用户模式操作这台机器。

在您确信所有在 “测试机”里都工作正常后， 就使用相同的过程在 “构建集群”里的其它机器里安装新的软件。

## 24.8.3 Ports

类似的想法是使用 ports 树。 第一个关键的步骤是从同一台计算机上挂接 `/usr/ports` 到 “构建集群” 里的全部计算机。 然后正确设置 `/etc/make.conf` 共享 distfiles。您应把 `DISTDIR` 设置到一个共享的目录里， 那里可以被任何一个 `root` 用户写入， 并且是由您的 NFS 挂接映射的。 设置每一台机器的 `WRKDIRPREFIX` 到一个本地构建 (build) 目录。最后，如果您要构建和发布包 (packages)，那么您应该设置 `PACKAGES` 到一个类似于 `DISTDIR` 的目录。

上一页 | 起始页 | 下一页
重新编译 “world” | 上一级 | DTrace

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

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.