Siguiendo los pasos de
https://wiki.samba.org/index.php/Samba4/HOWTO, con un CentOS 6.2 recién instalado, estos son los pasos que seguí para instalar Samba 4:
Preparacion del entorno
- crear usuario para NO trabajar con root, configurar keys de ssh y sudo
- instalar paquetes básicos
# curl -o epel-release-6-5.noarch.rpm \
http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
# sudo rpm -i epel-release-6-5.noarch.rpm
# sudo yum install -y man
# sudo yum install -y gcc patch
# sudo yum install -y autoconf
Compilado de Samba 4
# sudo yum install -y git
- instalamos paquetes recomendados
$ yum install libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig
$ yum install gtkhtml setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemange-python setools-libs-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel zlib-devel cyrus-sasl-devel
Al instalarlos con el comando anterior, me apareció:
(...)
No package gtkhtml available.
No package libsemange-python available.
(...)
pero me imagino que no son paquetes esenciales...
- bajamos repositorio Git y compilamos
# git clone git://git.samba.org/samba.git samba-master
# cd samba-master
Ahora deberemos "parchear" unos scripts Python que tienen un bug (esto no hará falta cuando los arreglos a estos scripts estén en git). Para parchearlos hay que ejecutar (en una misma línea):
# curl -s https://raw.github.com/gist/1739239/a8a38ef99dae9c5a12bc6939d59161dcc1f2fa5a/use-named-argument-dir-instead-of-prefix.diff | patch -p1
Ahora continuamos con el proceso:
# ./configure.developer --prefix=/opt/samba4-3bea5a147b
Nota: '3bea5a147b' es el commit (abreviado) de Git, sirve para identificar exactamente que versión estamos instalado. Se obtiene ejecutando: `git log --oneline | head -n 1 | cut -d " " -f 1`
# make -j2
# sudo mkdir /opt/samba4-3bea5a147b
# sudo chown USUARIO /opt/samba4-3bea5a147b
# make install
El próximo paso sería generar los archivos básicos que necesita Samba para funcionar. Esto se hace con el script "provision", pero al parecer al algún problema con el último comando que ejecutamos ("make install"): éste modifica algunos archivos y hace que se produzca un error al intentar ejecutar "provision". Por lo tanto, antes de ejecutar "provision", debemos volve a ejecutar "make" (
https://lists.samba.org/archive/samba-technical/2012-February/081526.html)
# make -j2
# sudo ./source4/setup/provision \
--realm=samdom.example.com \
--domain=SAMDOM \
--adminpass=SOMEPASSWORD \
--server-role='domain controller'
Listo! Ya tenemos Samba4 instalado en /opt. Ahora queda lanzar el proceso:
# sudo /opt/samba4-3bea5a147b/sbin/samba -i -M single
Aunque Samba ya está andando, queda pendiente su configurar, configuración de DNS, etc.
EDITADO: siguiendo el consejo del HOWTO, hace falta agregar el dominio en /etc/resolv.conf (una linea al estilo de "domain samdom.example.com")
EDITADO: el password seteado con "--adminpass" no debe ser simple, sino el proceso fallará con el error "check_password_restrictions: the password does not meet the complexity criteria!".