OpenLDAP: Program version 5.1 doesn't match environment version 4.8

O problema:
Ao atualizar um servidor Debian Squeeze (6.0) para a nova versão stable Wheezy (7.0), tudo ocorreu normalmente (como de costume) exceto pelo serviço OpenLDAP. O serviço simplesmente não subia, e não exibia nenhum erro. Tentei executar um slapcat para exportar a base e subí-la novamente. O comando slapcat reportava o seguinte erro (posteriormente vi que o erro também aparece no arquivo /var/log/syslog):
Program version 5.1 doesn't match environment version 4.8
Pesquisando na web, cheguei a essa página do próprio projeto Debian, que sugere a seguinte solução:
  1. Instalar o pacote db4.8-util
  2. Trocar para o diretório onde ficam as bases de dados do LDAP.
  3. Executar alguns comandos para atualizar a versão da base de dados.
Comandos:
Obs: Recomendo que seja feito antes um backup de todo o diretório /var/lib/ldap para outro diretório, por segurança.
apt-get install db4.8-util
cd /var/lib/ldap
db4.8_checkpoint -1
db4.8_recover
Após executar os comandos, verifique (ls -l) se todos os arquivos do diretório pertencem ao usuário que executa o servidor slapd (openldap, no Debian). Caso algum arquivo não pertença a esse usuário, corrija as permissões com o seguinte comando (ainda no diretório /var/lib/ldap):
chown openldap:openldap *
Após isso, basta iniciar o serviço:
/etc/init.d/slapd start

Nenhum comentário: