En la mayoría de ocasiones tendremos OpenLDAP en los repositorios de nuestra distribución. Pero como me gusta ser una persona positiva, me pondré en el caso de que no podamos acceder a dichos repositorios y nos quede la única y más clásica opción de todas: compilar desde código fuente, lo que nos dará algo más de diversión.
Instalación de Base de Datos Berkeley DB
OpenLDAP utiliza una Base de Datos Berkeley para guardar toda la información, por lo que tendremos que descargarla e instalarla. Para ello necesitaremos estar previamente registrados con una cuenta en Oracle y posteriormente podremos descargar el software necesario.
Procedemos a su instalación:
unzip db-6.0.20.zip cd db-6.0.20 cd build_unix/ ../dist/configure --prefix=/usr/local/db-6.0.20/ make make install
Instalación de OpenLDAP
El código fuente lo podemos encontrar en la propia web del proyecto.
Definimos las siguientes variables de entorno con las que nos evitaremos bastantes problemas durante la compilación. En LD_LIBRARY_PATH incluiremos la dirección de las librerías de la Base de Datos Berkeley (en nuestro caso como definimos previamente /usr/local/db-6.0.20/lib)
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib:/usr/local/db-6.0.20/lib:/usr/local/ssl/lib" export LDFLAGS="-L/usr/local/lib -L/usr/local/db-6.0.20/lib -L/usr/local/ssl/lib" export CPPFLAGS="-I/usr/local/include -I/usr/local/db-6.0.20/include -I/usr/local/ssl/include" export CFLAGS="-D_AVL_H"
Y procedemos a desempaquetar y entrar en el directorio:
tar -zxvf openldap-2.4.35.tgz cd openldap-2.4.35
Configuramos la compilación:
./configure --enable-bdb --enable-crypt --with-tls
Construimos las dependencias y ejecutamos make:
make depend && make
MUY recomendable, comprobar que la aplicación funcionará correctamente pasándole un test. Y ármate de paciencia, porque llevará un buen rato:
make test
Finalmente, instalamos:
make install
Y una vez completado, podemos iniciar el servicio con:
/usr/local/libexec/slapd
Comprobamos que está ejecutándose como proceso que utiliza el puerto 389 (TCP):
ps -ef | grep slap root 17707 1 0 21:30 ? 00:00:00 /usr/local/libexec/slapd
Comprobando comunicaciones de red también podemos verlo:
netstat -netaup | grep 389 tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 0 180114 17707/slapd tcp 0 0 :::389 :::* LISTEN 0 180115 17707/slapd