Recentemente me familiarizei com o poder restaurador de dpkg-reconfigure
seguir uma instalação incorporada do mailutils
pacote GNU. No final do processo de instalação, uma caixa de diálogo (ncurses?) aparece solicitando que o usuário faça escolhas e preencha alguns espaços em branco. Está tudo muito bem, e suponho que se você for proficiente o suficiente, você simplesmente evitará cometer erros na "caixa de diálogo de configuração pós-instalação", ou PICD
como chamarei na sequência.
Não sou proficiente e precisei executar novamente o 'PICD'. Ainda não conhecendo o dpkg-reconfigure
, presumi que seria necessário desinstalar e reinstalar. Mas quando fiz isso, a instalação foi concluída - mas o 'PICD' não reapareceu. Eu tentei um reboot
, mas ainda não há 'PICD'!?!
Eventualmente, alguém me deu uma dica dpkg-reconfigure
, mas dpkg-reconfigure mailutils
também não conseguiu restaurar o 'PICD'. Acontece que não mailutils
era isso que precisava ser reconfigurado - era postfix
- o MTA. Isso demorou um pouco para ser resolvido porque o empacotador Debian se mailutils
escondeu habilmente sob um "pacote virtual"postfix
inócuo chamado . E assim a magia necessária para obter uma segunda chance de reconfiguração foi: . Essa descoberta permitiu minha abordagem de configuração por tentativa e erro e finalmente a concluí.default-mta
dpkg-reconfigure postfix
Mas isso levantou uma ou duas questões para mim:
O que desabilita a apresentação do 'PICD' nas instalações subsequentes? Quero dizer, como o script de instalação sabe que o usuário já viu o ‘PICD’? Existe algum valor gravado e salvo pelo instalador para evitar a reprodução do 'PICD' ?
Por que o instalador desativa as apresentações subsequentes do 'PICD' (sem o
dpkg-reconfigure
encantamento)? Qual é o sentido disso, na verdade?
O
postfix
pacote usadebconf
para sua configuração. Você pode pensar nisso como uma espécie de registro no Debian; é usado pela maioria dos pacotes que precisam de configuração durante a instalação. Você pode ver os valores que ele armazena atualmente executandodebconf-get-selections
. Um pacote pode determinar durante a instalação se um valor esperado já foi armazenado nodebconf
banco de dados.Depois que um valor é definido
debconf
, a prática geral é não mostrar a caixa de diálogo correspondente durante a instalação do pacote. Isso evita fazer a mesma pergunta ao usuário várias vezes, em particular toda vez que um pacote é atualizado (isso é fortemente recomendado pela Política Debian ). Também permite que os pacotes sejam pré-configurados, para que possam ser instalados com configurações personalizadas sem interação do usuário; esta é uma prática comum para instalações automatizadas onde muitos sistemas precisam ser configurados da mesma maneira.Conforme você determinou, se uma definição de configuração precisar ser alterada, a melhor maneira de proceder é executar
dpkg-reconfigure
. Outra possibilidade é limpar o pacote afetado e reinstalá-lo: se nada mais dependesse (mesmo que fracamente) dedefault-mta
oupostfix
,sudo apt purge --autoremove mailutils
você teria apagado tudo sem precisar determinar sepostfix
o pacote realmente estava com defeito. (Na prática, você teria quepostfix
se limpar, já que muitos pacotes impedirãodefault-mta
que sejam candidatos à remoção automática, incluindounattended-upgrades
oucron
.)