Processando gatilhos para man-db

Processando gatilhos para man-db

Ao executar sudo aptitude upgrade, o console congela por muito tempo após quase todas as atualizações de pacote com uma mensagem "Processando gatilhos para man-db ...". Qual poderia ser o problema e como posso corrigi-lo?

Versão Ubuntu: 12.04 (servidor e Xubuntu)

Desde já, obrigado.


Atualização: parece que esse problema está relacionado ao pacote autofs em meus testes adicionais. A remoção do autofs resolveu os problemas. Não faço ideia do porquê. Então, tenho que usar links virtuais em vez de autofs no meu sistema de arquivos para evitar esse problema (e outros dois problemas postados aqui também).

Responder1

A Processing triggers for man-dbetapa só é executada se o arquivo /var/lib/man-db/auto-updateexistir. Este é um arquivo vazio com o único propósito de controlar esse comportamento, para que possa ser removido com segurança para desativar esse processo demorado e possivelmente desnecessário.

Eu pessoalmente desativo esse gatilho em todos os meus sistemas. Embora o cache man-db deva aumentar a velocidade e a funcionalidade do sistema de páginas de manual, não experimentei nenhuma degradação perceptível de desempenho ou problema funcional após desativar o gatilho.

Responder2

Cuidado:A execução do comando abaixo removerá partes integrantes do Ubuntu, como a capacidade de ler páginas de manual com o mancomando e utilitários relacionados, como apropose whatis. Além disso, remove o ubuntu-standardmetapacote, que por sua vez marcará um número adicional de pacotes como instalados manualmente. Siga este conselho com extremo cuidado.

Pode ser útil para alguém: encontro esse problema regularmente em nosso IC.

Basta executar o seguinte:

sudo apt-get remove --purge man-db

O comando remove completamente o pacote man-db, que no nosso caso no CI, era completamente inútil de qualquer maneira.

Responder3

É possível que o índice mandb esteja corrompido.

verifique o índice e recrie-o

sudo mandb -t
rm -rf /var/cache/man
sudo mandb -c

Responder4

O gatilho de atualização man-db é controlado por um sinalizador oculto no debconf, que é armazenado em cache no sistema de arquivos no caminho /var/lib/man-db/auto-update. Esse arquivo de sinalização em cache é sincronizado do banco de dados debconf no script man-db postinst aqui:https://sources.debian.org/src/man-db/2.11.2-2/debian/postinst/#L70-L79.

A maneira correta de alternar o sinalizador de atualização automática do man-db é alterar o valor de man-db/auto-updateto falseno banco de dados debconf e executar novamente o script man-db postinst que sincroniza o valor com o disco. Execute os seguintes comandos como root:

echo "set man-db/auto-update false" | debconf-communicate; dpkg-reconfigure man-db

Este sinalizador foi originalmente introduzido para evitar a reconstrução do banco de dados man-db em daemons de construção Debian/Ubuntu; veja bugs do Debian554914e579075para detalhes.

informação relacionada