Como remover todos os programas vem de um pacote? [duplicado]

7

Quando você instala um programa como o postgresql, ele instala vários programas para sua última versão.

Uma vez instalado, como remover todos esses pacotes? porque usando

apt-get remove postgresql

remove apenas esse pacote principal

    
por Marc 22.07.2012 / 20:43

3 respostas

9

Como apt-get autoremove (sugerido por Aaron) removerá todos os "pacotes auxiliares", nada parece depender mais, às vezes você quer manter alguns deles por um motivo ou outro. Então, se isso diz respeito a você, outra possibilidade seria:

$(apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}')

Usando o Bash como seu shell, isso basicamente faria o seguinte:

  1. apt-cache depends postgresql listaria todos os pacotes dos quais o postgresql depende, incluindo o próprio postgresql. Mas cada linha seria parecida com depends on: <package> - então nós enviamos a saída para ...
  2. awk '{print "sudo apt-get remove "$NF}' , que tomaria a última palavra em cada linha (que é o nome do pacote), e imprime depois de precedê-la com o nosso comando pretendido: sudo apt-get remove (você poderia também usar apt-get purge ).
  3. finalmente, usando a construção $() , aconselhamos o Bash a interpretar a saída como um comando a ser executado.

Você pode alternativamente substituir o terceiro passo e redirecionar a saída para um arquivo:

apt-cache depends postgresql|awk '{print "sudo apt-get remove "$NF}' >pg_remove.sh

E, em seguida, inspecionar o arquivo, opcionalmente, fazer alguns ajustes (como comentar / remover linhas onde você deseja manter um pacote) e, finalmente, executar o script usando

bash pg_remove.sh

Agora você tem muitas possibilidades para escolher:)

EDITAR: Verificação com meta-pacotes mais complexos, como, por exemplo, lubuntu-desktop, as declarações acima precisam ser refinadas:

apt-cache depends <packageName>|grep "Depends on"|awk '{print "sudo apt-get remove "$NF}'

O grep é necessário para restringir o resultado às dependências (e pular as recomendações, etc.).

IMPORTANTE: Você deve usar isto apenas para metapacotes !!! caso contrário, você pode acabar com um disco vazio (por exemplo, postgresql-9.1 depende da libc6, e remover a libc6 certamente necessário por muitos pacotes).

Portanto, tenha cuidado e redirecione melhor para um arquivo primeiro (conforme explicado) e investigue antes da execução.

    
por Izzy 22.07.2012 / 21:13
1

Alt + Ctrl + T e executado:

sudo apt-get autoremove

Este comando remove os pacotes que não são mais necessários, o que é devido à remoção de um pacote (como o postgresql) que depende deles.

Você sempre pode limpar os arquivos de configuração com:

sudo apt-get autoremove --purge

Para limpar ainda mais, use o seguinte:

sudo apt-get install deborphan sudo apt-get autoremove --purge
deborphan
    
por Aaron Hill 22.07.2012 / 20:49
0

Simples siga os seguintes comandos:

sudo apt-get install deborphan
sudo apt-get autoremove --purge postgresql
sudo apt-get autoremove --purge 'deborphan'
    
por Abhisek Mukherjee 04.04.2013 / 14:11

Tags