Recuperación de slapd (Program version 4.8 doesn’t match environment version 4.7)

Utilizo slapd para dar un servicio de directorio, la clásica agenda de contactos con email, teléfono y demás. Hace algunos años, cansado de tener que pasar de una a otra herramienta de gestión de contactos, según cambiaba de programa de correo (de mutt a pine; de pine a evolution; de evolution a thunderbird), decidí quedarme en el punto intermedio de todos ellos y, tras investigar un poco, éste resultó ser OpenLDAP.

Crear una estructura de directorio es sencillo (forat, cúrrate un howto ;)) y muy útil. Como, además, el servicio lastra muy poco el equipo donde está alojado, puede funcionar en máquinas no muy potentes, como es mi caso. A cambio, dispondremos de una agenda de contactos rápida, accesible desde la mayoría de clientes de correo (incluso Outlook Express) y fácil de gestionar y mantener. En mi caso era así, hasta hoy.

Hay ciertos servicios que, una vez los pones a funcionar, dejas de pensar en ellos y únicamente los utilizas, los conviertes en rutina. Por eso, cuando fallan (porque nada es infalible), la sensación de estupor es grande y no sabes por dónde empezar la batalla.

Hace dos días, slapd decidió no arrancar más tras una actualización del equipo. El error que aparecía en syslog era bastante feo, llegando a mencionar el sacrosanto backup, toda una osadía, en mi opinión.

Tras bucear un rato por internet (aquí y aquí) entendí que las bases de datos que utiliza slapd tenían el formato Berkeley DB version 4.7 y, desde la última actualización, debían tener el formato Berkeley DB version 4.8. Para pasar de un formato a otro hacen falta un par de paquetes, uno por cada versión de la base de datos con que vamos a trabajar. Se instalan:

El directorio de las bases de datos está definido en el fichero de configuración de slapd (/etc/ldap/slapd.conf) pero, por defecto es /var/lib/ldap/midominio.net. Todas las modificaciones se harán sobre ese directorio y es conveniente, como siempre, hacer una copia de seguridad de los ficheros que vamos a tocar porque esta solución salió al tercer intento.

Lo primero es eliminar toda referencia a la versión 4.7 en los ficheros:

Y, una vez hecho esto, falta por restaurar la base de datos con la nueva versión del entorno, algo así como la nueva versión del gestor.

Como los ficheros que se han tocado no pertenecen al programa que los va a usar, retoco permisos y propietario:

Y, al reiniciar de nuevo slapd, funciona sin más problemas.

 

Diego Martínez Castañeda

linux user, debian user, blogger, podcaster, geek, nerd y escritor sin ideas, nadador sin ganas y ciclista convencido. Asturiano en Mérida.

 

3 thoughts on “Recuperación de slapd (Program version 4.8 doesn’t match environment version 4.7)

  1. xsas, yo tampoco lo conocía, la verdad. Pero para eso están los errores desconocidos, para enseñarte nuevos y fantásticos programas :D. Por eso lo he escrito aquí, para tener una referencia la próxima vez que me pase (que pasará ;)).

    dabo, ya sabes que siempre se puede contar con los servidores para sorprenderte sustos así.

    saludos.

Comments are closed.