下一页 上一页 目录

3. 编译 BIND

您应该可以通过访问 http://www.isc.org/bind.html 找到 BIND 源代码。您需要 bind-src.tar.gz 软件包。请务必获取最新版本!

3.1 修改路径

在这个阶段事情可能会变得有点混乱,因为 BIND 软件包的不同部分将用不同的名称来指代相同的目录(取决于它们是否在 jail 环境内运行)。我会尽量不让您感到困惑 :-)。

我们在这里需要主要关注的目录是 /var/run,因为主 named 守护进程(在 jail 环境内)和 ndc 实用程序(在外部)都需要它的内容。我们将从设置一切,以便从外部世界找到这个目录开始。为此,我们需要修改 src/port/linux/Makefile.set(如果您不是运行 Linux,请替换为您的端口目录),并更改以下行

DESTRUN=/var/run
DESTRUN=/chroot/named/var/run
当您在那里时,您可能还想将其他目标路径从 /usr 更改为 /usr/local

现在一切都应该能够找到该目录了... 除了 named 守护进程本身,对于它来说,在 jail 环境内仍然只是 /var/run。我们可以通过在 named 源代码中做一个小小的更改来解决这个问题。在文件 src/bin/named/named.h 中,找到以下行

#include "pathnames.h"
并在其后立即添加以下行
#define _PATH_NDCSOCK    "/var/run/ndc"
这样,named 将忽略我们在 Makefile.set 中对 DESTRUN 的定义,并使用正确的位置(从其在 chroot jail 中的角度来看)。当您进行构建时,您会注意到一些关于 _PATH_NDCSOCK 重定义的警告;请忽略它们。

3.2 进行构建

现在您应该能够像往常一样编译 BIND,按照 INSTALL 文件中的说明进行操作。在这个阶段,我们只想编译 BIND,而不是安装它。按照 INSTALL 文件进行操作时,不要走得太远。基本上,只需要 make cleanmake dependmake 即可。


下一页 上一页 目录