Gerenciamento automático de pacotes instalados através do aptitude

Publicado: 04/01/2012 em Linux
Tags:, ,

Algumas vezes nos deparamos com a mensagem do aptitude (ou apt-get) de que existem “pacotes que foram instalados automaticamente e já não são necessários”. Mas estamos falando daquelas situações onde existe uma lista muito grande de pacotes nesta situação mas, no entanto, isto não é verdade pois os pacotes estão em uso e são necessários.

Isso acontece em função de alternância pelo usuário da utilização entre aptitude, apt-get e synaptic. Ou ainda devido ao fato de que o usuário ter removido algum meta-pacote que estava como “manual” e agora todos os outros pacotes ficaram como “automático”, o que significa que o sistema pensa que não há ninguém usando.

A diferença entre “manual” e “automático” é a seguinte. Quando o usuário manda o gerenciador de pacote instalar um pacote, ele marca esse pacote como “manual” e todas as suas dependências como “automático”. Essa diferença é importante porque pacotes “auto” que não estão relacionados com nenhum pacote “manual” é considerado pelo aptitude como não mais em uso pelo sistema. E poderiam (deveriam!) ser removidos.

Ou seja, quando se instala um pacote, o aptitude irá instalar automaticamente outros pacotes de que depende. Estes pacotes são marcados como tendo sido “instalado automaticamente”; aptitude irá monitorá-los e fará sua remoção quando nenhum outro pacote instalado manualmente estiver dependendo deste pacote [1]. Eles irão aparecer na tela do aptitude como “pacotes que estão sendo removidos porque não são mais usados​​”.

Entendendo um pouco mais
Para instalar um pacote, geralmente é necessário instalar vários outros (para atender suas dependências). Por exemplo, se você deseja instalar o pacote clanbomber, você também deve instalar o pacote libclanlib2. Se você remover clanbomber novamente, você provavelmente já não precisa do pacote libclanlib2; aptitude irá tentar detectar e remover automaticamente o pacote libclanlib2.

Como em qualquer processo automático, há um potencial para que as coisas derem errado. Por exemplo, mesmo que um pacote esteja inicialmente instalado na forma “automaticamente”, ele pode vir a ser útil em seu próprio direito. Através do aptitude, o usuário pode cancelar a flag “automático” a qualquer momento, pressionando m; se o pacote já está sendo removido, o usuário pode usar a opção “pacote → Instalar (+)” para cancelar a remoção e limpar a indicação de “automático”.

A solução
Para resolver esse problema, o procedimento mais saudável é executar o seguinte comando:

# aptitude full-upgrade

Este comando irá tentar atualizar os pacotes, incluindo o tratamento dos problemas de dependência: ele irá instalar e remover pacotes até que todas as dependências estejam satisfeitas. Removerá todos os pacotes marcados como “automático”, o que vai fazer o usuário perder vários pacotes que estão sendo utilizando agora. No entanto, como os arquivos de configuração serão mantidos, basta que o usuário, em seguida, instale tudo que sentir falta.
OBS: não se deve instalar bibliotecas, mas deixar que essa tarefa seja realizada pelo próprio gerenciador. Deve ser instalado apenas os pacotes principais.

Em síntese, este procedimento irá refazer a lista de pacotes e dependências de forma correta.

[1] Mais precisamente: eles serão removidos quando não há caminho via “Depende”, “PreDependência”, ou “Recomendação” para eles a partir de um pacote instalado manualmente. Se a variável do aptitude “Aptitude::Keep-Suggests” for “true” (obs: o default é “false”), a relação de “Pacotes Sugeridos” também será suficiente para manter um pacote instalado (portanto, não será automaticamente removido).

Referências
1- Managing automatically installed packages
2- Ajuda – Muitos pacotes no apt “não sendo usados”!
3- Manual do aptitude (alcançado via comando “man aptitude” no terminal).

Anúncios

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s