Isso está acontecendo porque aptitude gosta de remover pacotes que acha que não estão sendo usados. aptitude acompanha cada programa que instala e classifica como "manual" ou "automático". Pacotes "manuais" são aqueles que solicitam explicitamente a instalação. Pacotes "automáticos" são aqueles que você não solicitou especificamente, mas que foram instalados como dependências. Por exemplo, aptitude install irssi instalará o irssi, mas também um host de bibliotecas, incluindo libncurses, lbperl, lbtinfo, libval e outras. Se em algum momento você remover o irssi e for o único pacote instalado que precisou de algumas dessas bibliotecas, aptitude também removerá as bibliotecas desnecessárias instaladas automaticamente.
Infelizmente, costumava ser o caso que aptitude e apt-get não funcionavam bem juntos e empacotados instalados por apt-get seriam frequentemente considerados por aptitude como instalados automaticamente e, portanto, candidatos a eliminação. As versões mais recentes de apt-get funcionam muito melhor em conjunto com aptitude , mas esse problema se manifestou em um momento em que esses problemas existiam.
Se, por algum motivo, você ainda estiver tendo esse comportamento agora, há algumas opções. O mais simples seria simplesmente usar o provedor apt do tipo package do Puppet. Isso evitaria completamente qualquer confusão aptitude sobre quais pacotes devem ser removidos.
Se você precisar continuar usando o provedor aptitude , precisará corrigir as ideias de aptitude sobre o que está sendo usado. Execute aptitude dist-upgrade e observe todos os pacotes que deseja remover. Para cada um que você sabe que deseja manter, execute aptitude unmarkauto <package-name> (por exemplo, aptitude unmarkauto apt-file curl ). Em seguida, certifique-se de usar somente aptitude para instalações de pacotes a partir desse momento.
Na minha experiência, as únicas coisas que aptitude faz melhor do que as versões atuais de apt-get são interativas: a interface curses e a capacidade de modificar o conjunto de instalações / remoções de pacotes no meio de uma sessão de linha de comando. O Puppet não precisa de nenhum dos recursos interativos, então você deve estar bem apenas usando o provedor apt .