Compiling Samba from source
Compiling Samba from source on Debian Buster
Attention
The development version is not to be installed in a production environment. It is not stable and contains many bugs. You can compile it in an isolated environment to test new features.
This documentation is based on the Debian Buster 64bits distribution.
We assume that the machine is freshly installed, up to date and that no service other than SSH is installed.
apt-get update && apt-get upgrade
We install the necessary dependencies to compile 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
As we will get the master branch of Samba from the Samba github, we will download Git:
apt-get install git
We go to /usr/src
to download the Samba sources.
We will then compile Samba.
cd /usr/src
git clone https://github.com/samba-team/samba.git
cd samba
./configure
make
make install
By default, Samba will be compiled into the /usr/local/samba
directory.
For example, the samba-tool command can be found in /usr/local/samba/bin/samba-tool
.
Adding the path to Samba commands to your Linux user
In order not to write the full path of a Samba command, we will add the Samba tools in $PATH:
echo "export PATH=$PATH:/usr/local/samba/sbin:/usr/local/samba/bin" >> /root/.bashrc
source /root/.bashrc
Setting up Samba-AD to start automatically
Create the
/etc/systemd/system/samba.service
file:[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
To start Samba automatically, run systemctl enable samba:
systemctl enable samba
Compiling Samba from source on Redhat8 and derivatives
To do