Compiler Samba à partir des sources

Compiler la version de développement de Samba

Attention

Cette version n’est pas à installer dans un environnement de production. Elle n’est pas stable et contient de nombreux bugs. Vous pouvez la compiler dans un environnement isolé pour tester les nouvelles fonctionnalités.

Cette documentation se base sur la distribution Debian Stretch 64bits.

Nous partons du principe que la machine est fraichement installée et à jour.

apt-get update && apt-get upgrade

Nous installons les dépendances nécessaires à la compilation de Samba

export DEBIAN_FRONTEND=noninteractive
apt-get install build-essential libacl1-dev libattr1-dev \
libblkid-dev libgnutls28-dev libreadline-dev python3-dev libpam0g-dev \
python3-dnspython gdb pkg-config libpopt-dev libldap2-dev \
dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl \
libgpgme11-dev python3-gpgme libgpgme11-dev \
liblmdb-dev libjansson-dev libarchive-dev python3-markdown \
python3-setuptools python3-distlib
unset DEBIAN_FRONTEND

Comme nous allons récupérer la branche master de Samba depuis le github de Samba, nous allons télécharger le paquet Git.

apt-get install git

Nous nous plaçons dans le dossier /usr/src pour télécharger les sources de Samba. Nous allons ensuite compiler Samba.

cd /usr/src
git clone https://github.com/samba-team/samba.git
cd samba
./configure
make
make install

Par défaut, Samba sera compilé dans le répertoire /usr/local/samba.

Par exemple, la commande samba-tool se trouve dans /usr/local/samba/bin/samba-tool.

Ajout du path des commandes Samba

Afin de ne pas écrire le chemin complet d’une commande Samba, nous allons rajouter les outils Samba dans $PATH

echo "export PATH=$PATH:/usr/local/samba/sbin:/usr/local/samba/bin" >> /root/.bashrc
source /root/.bashrc

Mise en place du démarrage automatique de Samba

Créer le fichier /etc/systemd/system/samba.service

[Service]
Type=forking
PIDFile=/usr/local/samba/var/run/samba.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/conf.d/samba
ExecStart=/usr/local/samba/sbin/samba
ExecReload=/usr/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Pour démarrer automatiquement Samba, exécuter la commande :

systemctl enable samba