Como desinstalar pacotes não dependentes?

2

Como você encontra todos os pacotes que foram instalados manualmente e que não são dependentes de nenhum outro pacote instalado?

    
por Flint 09.11.2011 / 09:22

1 resposta

3

A resposta curta é: use aptitude da seguinte forma:

aptitude -F%p search '?installed?not(?automatic)

Mas, infelizmente, este comando retorna muitos pacotes que correspondem à consulta, mas não são o que você espera, por dois motivos:

  1. existem pacotes instalados durante a instalação inicial do sistema que resultam como não instalados automaticamente

  2. Os pacotes
  3. instalados como dependências de um meta-pacote também podem ser obtidos como não instalados automaticamente

A solução a que cheguei há algum tempo é uma correspondência entre o comando anterior e os dpkg logs, que pelo menos tentam remover a influência do ponto 1. na lista de problemas anterior:

#!/bin/bash

export LC_COLLATE=C

eval $(lesspipe)

vars=($(less $(ls -rt /var/log/dpkg.log*) | grep 'status installed grub-pc' | head -1))
date="${vars[0]}"
time="${vars[1]}"

join \
  <(aptitude -F%p search '?installed?not(?automatic)' |
    sort) \
  <(less $(ls -rt /var/log/dpkg.log*) |
    awk -v date=$date -v time=$time '(( == date &&  > time) ||  > date) &&  == "install" { print , ,  }' |
    sort -u) |
  awk '{ print , ,  }' |
  sort

Isso assume que grub-pc é o último pacote instalado durante a instalação inicial e não é perfeito, mas pode fornecer informações básicas para você começar.

    
por enzotib 09.11.2011 / 09:37