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
.