July 1, 2013

Building SAMBA4 on Ubuntu

Actually, reading the official docs should be fine. However, here are some experiences and hints.

Prerequisites

For successfully building SAMBA4, you need some extra packages on your Ubuntu machine/vm:

apt-get install build-essential libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev autoconf python-dnspython gdb pkg-config bind9utils resolvconf krb5-user git-core screen acl python-dev libgcrypt11-dev libtalloc-dev libldb-dev libtevent-dev zlib1g-dev libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils

Source code

git clone git://git.samba.org/samba.git samba-master
cd samba-master
git checkout v4-0-stable

Building

We are just using the included Makefile. As we want to use LDAP with Start TLS later, we need to pass the appropriate parameter before actually compiling.

./configure --enable-gnutls
make

Note: If you’r already running a samba instance, you need to stop it before installing:

service samba4 stop

Making backups is always a good idea, assuming you installed into the default directory:

cp -R /usr/local/samba /usr/local/samba.bak

Finally, install the files:

make install

Ubuntu Upstart

Just paste the following into /etc/init/samba4.conf:

description "SMB/CIFS File and Active Directory Server"
author      "Jelmer Vernooij <jelmer@ubuntu.com>"
start on (local-filesystems and net-device-up)
stop on runlevel [!2345]
expect fork
normal exit 0
pre-start script
	[ -r /etc/default/samba4 ] && . /etc/default/samba4
	install -o root -g root -m 755 -d /var/run/samba
	install -o root -g root -m 755 -d /var/log/samba
end script
exec /usr/local/samba/sbin/samba -D