Compiler Samba à partir des sources

Compiler Samba à partir des sources sur Debian Buster

Attention

La version de développement 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 Buster 64bits.

Nous partons du principe que la machine est fraichement installée et à jour sans aucun autre service installé que le serveur ssh.

apt-get update && apt-get upgrade

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

export DEBIAN_FRONTEND=noninteractive
apt-get install acl attr autoconf bind9utils bison build-essential \
debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev krb5-user \
libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev \
libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl \
libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl \
libpopt-dev libreadline-dev nettle-dev perl perl-modules pkg-config \
python-all-dev python-crypto python-dbg python-dev python-dnspython \
python3-dnspython python-gpgme python3-gpgme python-markdown python3-markdown \
python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils

Comme nous allons récupérer la branche master de Samba depuis le github de Samba, nous allons télécharger 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.

Ajouter le chemin vers les commandes Samba à votre utilisateur Linux

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

Mettre en place le 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 :

    systemctl enable samba
    

Compiler Samba à partir des sources sur RedHat8 et dérivées

A FAIRE