Usando o apt-get para remover pacotes e dependências

2

Recentemente, li muitas perguntas / respostas / opiniões sobre a remoção de pacotes e dependências. Há muitas maneiras diferentes de fazê-lo, algumas sendo excessivamente complicadas e outras insuficientes / incompletas. Eu quero perguntar aqui em um lugar o que os outros acham que são as melhores maneiras de limpar um pacote e tudo, incluindo configurações, dependências e configurações de dependências. Eu também ofereço meu método que veio de muitas tentativas e erros e puxões de cabelo.

    
por Brian Huggins 12.12.2015 / 05:06

2 respostas

4

Aviso: isso pode remover pacotes que você ainda pode querer. Se isso acontecer, basta reinstalá-los. Mas, honestamente, quando você está instalando / desinstalando algo que vai fazer grandes mudanças em seu sistema ... por que não prosseguir e fazer backup primeiro.

O mais completo método que eu já usei para remover completamente um pacote MAIS suas dependências MAIS todas as configurações incluindo aquelas configurações de dependências e fazer um pouco de limpeza é onde PACKAGENAME é o pacote principal a ser removido:

  • Efetue logout da área de trabalho e pressione Ctrl + Alt + F1 e faça login no TTY1 e execute os seguintes comandos:

    sudo apt-get purge <PACKAGENAME>
    sudo apt-get purge $(apt-cache depends <PACKAGENAME> | awk '{ print  }' | tr '\n' ' ')
    sudo apt-get autoremove
    sudo apt-get update
    sudo apt-get check
    sudo apt-get -f install
    sudo apt-get autoclean
    
  • Reinicie se necessário

    sudo shutdown -r now
    

Então, o que está acontecendo na segunda linha? Os pipes pegam a saída do apt-cache e a reformata. O primeiro pipe awk '{print $ 2}' leva a saída do apt-cache depende e imprime, ou "ecoa", somente a segunda coluna. Sem ele você também teria na lista outra coluna que é o tipo de dependência, ou seja, "depende", "recomenda", etc. Então o segundo canal tr '\ n' '' leva esse resultado e remove, ou trunca (daí tr), as novas linhas e as substitui por um espaço que separa os nomes. Tudo isso retorna uma lista "delimitada por espaço" dos nomes de todos os pacotes de dependência de PACKAGENAME que são compatíveis com formato para uso com entrada de vários pacotes para limpar a opção de comando.

Isso funciona especialmente bem para pacotes meta. Eu corro o último comando "sudo apt-get -f install" no final para checar possíveis pacotes quebrados e consertá-los depois de fazer tantas mudanças de uma só vez. Eu especialmente faço isso sempre que eu adiciono um "DE" e quero voltar. Recentemente eu usei isso depois de instalar o GNOME e ele consertou o fato de que apenas remover o Gnome com autoremove depois de deixar meu GRUB foi alterado e deixar a opção de login no DM. Quando experimentei o lubuntu-desktop, consertei alguns conflitos e removi as entradas do login do DM que foram deixadas por purge e autoremove.

Um método semelhante que funciona bem, provavelmente é mais seguro, mas nem sempre consegue tudo:

sudo apt-get --purge autoremove PACKAGENAME

Que pode ou não precisar de acompanhamento:

sudo apt-get update
sudo apt-get check
sudo apt-get -f install
sudo apt-get autoclean
    
por Brian Huggins 12.12.2015 / 05:18
0

Eu também uso aptitude purge para isso:

sudo aptitude purge <PACKAGENAME>

Este comando

  • remove as dependências
  • sem remover as dependências que também são dependências de algum outro pacote instalado,
  • mas não tenho certeza se remove as configurações das dependências.
por Yuri P. 19.10.2017 / 14:13