Vous devriez pouvoir trouver les sources de BIND en visitant
http://www.isc.org/bind.html. Vous avez besoins du paquet
bind-src.tar.gz
. Assurez-vous de bien récupérer la
dernière version !
Les choses peuvent s'embrouiller un peu à partir de maintenant, parce que les différentes parties du paquetage BIND se référent aux mêmes répertoires par des noms différents (dépendant du fait qu'ils s'exécutent ou non dans l'environnement restreint). Je vais essayer de ne pas trop vous embrouiller.
Le répertoire dont nous devons nous occuper en priorité est
/var/run
car son contenu est
nécessaire à la fois pour le démon named (à l'intérieur
de l'environnement restreint) et pour l'utilitaire ndc (à
l'extérieur). Nous allons commencer par paramétrer ce qu'il faut pour trouver
ce répertoire depuis le monde extérieur. Pour cela, nous devons modifier
src/port/linux/Makefile.set
(substituez par le
répertoire de votre architecture si vous ne fonctionnez pas sur
Linux), et changez la ligne
DESTRUN=/var/run
en
DESTRUN=/chroot/named/var/run
Tant que vous êtes là, vous pouvez changer l'autre chemin de
destination /usr
en /usr/local
. Maintenant, tout devrait être
capable de trouver ce répertoire… excepté le démon
named lui-même, pour qui c'est toujours le vrai
/var/run
dans l'environnement
restreint. Nous pouvons contourner ceci en faisant un petit changement
dans les sources de named. Dans le fichier
src/bin/named/named.h
, trouvez
la ligne
#include "pathnames.h"
et ajouter la ligne suivante immédiatement après
#define _PATH_NDCSOCK "/var/run/ndc"
De cette façon, named ignorera notre définition de
DESTRUN
dans Makefile.set
et
emploiera l'emplacement correct (par rapport à sa perspective dans
l'environnement restreint). Vous remarquerez quelques avertissements au
sujet des redéfinitions de _PATH_NDCSOCK quand vous faites
la compilation ; vous pouvez les ignorer.
Vous devriez maintenant être capable de compiler normalement BIND, en
suivante les instructions du fichier INSTALL
. À
cette étape, nous voulons seulement compiler BIND, sans l'installer.
N'allez pas trop loin en suivant le fichier
INSTALL
. Globalement, il faut juste
faire make clean, make depend et
make.