Por que o apt-get install e remove não limpa o mesmo espaço

3

Por que apt-get install package e, em seguida, apt-get remove package não consomem e limpam quase exatamente o mesmo espaço? Por exemplo, com o pacote "latex2html", obtém-se:

ubuntu:~$ sudo apt install latex2html
Need to get 758 MB of archives.
After this operation, 1,211 MB of additional disk space will be used.
Do you want to continue? [Y/n]
....
ubuntu:~$ sudo apt remove latex2html
The following packages will be REMOVED:
  latex2html
0 upgraded, 0 newly installed, 1 to remove and 92 not upgraded.
After this operation, 5,578 kB disk space will be freed.
Do you want to continue? [Y/n]
    
por Paulo Ney 22.01.2017 / 09:24

2 respostas

9

Se pudéssemos inspecionar a saída completa desses dois comandos, provavelmente encontraríamos que apt-get install latex2html instalou muito mais pacotes (dependências de latex2html ) do que apt-get remove latex2html removido (apenas um único , latex2html em si).

É fácil ver que a soma de um conjunto de números positivos A é maior que a de um conjunto B que é um verdadeiro subconjunto de A. Mais concretamente: o pacote latex2html (conjunto B na analogia) ocupa menos espaço do que o mesmo pacote mais todas as suas dependências (defina A, se houver pelo menos uma dependência insatisfeita durante a instalação do pacote).

Se você quiser remover todos os pacotes de dependência não utilizados 1 , poderá usar:

sudo apt remove <PACKAGE>
sudo apt autoremove

ou simplesmente

sudo apt autoremove <PACKAGE>

Todos esses comandos pedirão confirmação se o Apt pretende fazer algo além do que você instruiu para fazer diretamente, e. g. instalar ou remover um pacote diferente dos especificados na linha de comando. Você também pode pedir ao apt para mostrar apenas o que ele faria e não fazer isso por meio das opções de linha de comando -s , --simulate , --just-print , --dry-run , --recon ou --no-act ( equivalente).

1 Neste contexto, "não usado" significa que nenhum pacote manualmente instalado depende dele (direta ou transitivamente). "Manualmente" significa que alguém ou algo instruiu o Apt a instalar este pacote em particular diretamente, i. e. via apt-get install <PACKAGE> , Centro de Software, ou alguma outra interface de gerenciador de pacotes, e que não foi meramente selecionada para instalação como uma dependência de um pacote diferente pelo Apt.

    
por David Foerster 22.01.2017 / 12:16
3

Além do que @DavidFoerster disse, apt remove não apenas não remove as dependências. Especialmente arquivos de configuração são muitas vezes deixados por aí. De man apt-get :

  

remover

     

remove é idêntico para instalar, exceto que os pacotes são removidos em vez de instalados. Observe que a remoção de um pacote deixa seus arquivos de configuração no sistema. Se um sinal de mais for anexado ao nome do pacote (sem espaço intermediário), o pacote identificado será instalado em vez de removido.

     

eliminação

     

purge é idêntico para remover, exceto que os pacotes são removidos e eliminados (quaisquer arquivos de configuração também são excluídos).

Para se livrar de tudo, incluindo os arquivos de configuração, execute sudo apt purge , conforme indicado na cotação.

Observe também que apt coloca os próprios arquivos do pacote baixado em /var/cache/apt/archives/ caso precise deles novamente. Eles não serão excluídos por sudo apt remove/autoremove/purge , o que ocupa um pouco mais de espaço em disco. Você pode excluir todos os arquivos do pacote em cache que não podem mais ser baixados executando sudo apt autoclean e todos eles usando sudo apt clean .

De man apt-get :

  

clean

     

clean limpa o repositório local de arquivos de pacotes recuperados. Ele remove tudo, mas o arquivo de bloqueio   / var / cache / apt / archives / e / var / cache / apt / arquivos / partial /.

     

autoclean (e o alias de limpeza automática desde 1.1)

     

Como clean, o autoclean limpa o repositório local recuperado   arquivos de pacote. A diferença é que apenas remove arquivos de pacotes   que não podem mais ser baixados e são em grande parte inúteis. Isso permite   um cache para ser mantido por um longo período sem crescer   ao controle. A opção de configuração APT :: Clean-Installed impedirá   os pacotes instalados sejam apagados se estiverem desativados.

    
por Graipher 22.01.2017 / 15:08