Bind on Debian

Will Yardley william at hq.newdream.net
Thu Jul 12 17:09:53 UTC 2001


Are you using a kernel that doesn't support this? Bind doesn't support
running as a non-root user on kernels below 2.3

I would also recommend installing from source; the Debian version is a few
releases behind (even the woody package) - the 9.2 alpha would be a good
choice or 9.1.3 beta.

If you look in the 'debian/rules' file in the source package you can see the
options debian's compiled it with; you'll miss any patches, but the newer
versions have some bug fixes from 9.1.1 which is what the .deb for bind9 is.
i tried uupdating it, and doing some other stuff to try and get 9.2.0a to
package up into a nice .deb but it didn't want to play nice (most debian
packages aren't quite as complicated.

if you want to compile with the 'debian' options, try the following
options to configure:
 --prefix=/usr \
                --mandir=\$${prefix}/share/man \
                --infodir=\$${prefix}/share/info \
                --sysconfdir=/etc/bind \
                --localstatedir=/var \
                --enable-threads \
                --with-libtool \
                --enable-shared \
                --enable-static \
                --with-gnu-ld \
                --enable-ipv6

(they also had --with-openssl=/usr or something like that, but that
seemed to cause the package problems when building.  if you leave this
out, bind just uses its own openssl libraries, but if you're running
woody you might try using that option first and seeing if it works).
generally bind9 compiles quite nicely on debian.

i would also recommend using a modified init script.  the debian init script
kills named with a SIGTERM - rndc is the preferred method of stopping bind
nicely (saves pending updates if you do rndc stop).  

this is my (probably crappy) modified init script.  i made it sleep after
rndc stop since rndc exits, but named still runs for a bit

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

test -x /usr/local/sbin/named || exit 0

case "$1" in
    start)
        echo -n "Starting domain name service: named"
        start-stop-daemon --start --quiet --exec /usr/local/sbin/named
        echo "."
    ;;

    stop)
        echo -n "Stopping domain name service: named"
# we want to stop it nicely instead of the mean debian way.
#       start-stop-daemon --stop --quiet  \
#           --pidfile /var/run/named.pid --exec /usr/local/sbin/named
        /usr/local/sbin/rndc stop
        sleep 25
        echo "."
    ;;

    reload)
        /usr/local/sbin/rndc reload
    ;;

    restart|force-reload)
        $0 stop
        sleep 5
        $0 start
        echo "make sure named really restarted"
    ;;
    *)
        echo "Usage: /etc/init.d/bind
{start|stop|reload|restart|force-reload}"
>&2
        exit 1
    ;;
esac

exit 0

perhaps not the most elegant way of doing it, but it works for me.  does
anyone else have a working init script that uses rndc ? 


More information about the bind-users mailing list