porque 'dpkg -l | grep package 'está mostrando um pacote depois de ser removido

4

Para desinstalar um pacote (Ex: tor) instalado do repositório, deve-se usar

sudo apt-get remove tor

Eu fiz isso, mas dpkg -l | grep tor mostrou algo contra o pacote. Em seguida eu tento

sudo apt-get purge tor

Mas quando eu verifico dpkg -l | grep tor eu consegui,

reza@reza-N43JM:/$ dpkg -l tor    
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
un  tor            <none>         (no description available)

Eu acho que quando desinstalo qualquer pacote, não consigo nada na lista dpkg -l . É verdade? Ou apt-get remove ou purge faz outro trabalho mas não desinstala?

    
por Mohammad Reza Rezwani 28.03.2014 / 15:53

2 respostas

4

Observe as primeiras duas letras da saída de dpkg -l tor que diz un

u: Unknown (an unknown state)
n: Not- The package is not currently installed

às vezes, dpkg mantém essas entradas para referências. Para remover essas entradas problemáticas, execute no terminal

sudo dpkg --clear-avail

Em man dpkg

--clear-avail
          Erase  the  existing  information  about   what   packages   are
          available.
    
por souravc 28.03.2014 / 16:36
0

Parece que @souravc tem apenas parte da solução.

(Nota: Eu estou fazendo isso no Debian, eu acho que deveria se aplicar principalmente ao Ububtu também.)

/ var / lib / dpkg / status e / var / lib / dpkg / available contém informações sobre pacotes que estão disponíveis para instalação (como o que o apt faz), instalados ou apenas sobravam arquivos de configuração. Se um desses pacotes (digamos, bar ) Depends: no pacote foo , mas foo em si já não estiver listado (isso não deve acontecer contanto que você use apenas repositórios oficiais Debian / Ubuntu estáveis) dpkg -l tor irá mencioná-los.

grep-status (não é necessário root) é um comando simples que pode ajudá-lo a localizar qual pacote é o culpado:

$ grep-status foo
Package: bar
Depends: foo
...
$ dpkg -s bar
$ dpkg -L bar
...

agora você pode desinstalar ou limpar o pacote usando, por exemplo:

# dpkg -r bar
# dpkg -P bar
    
por Alois Mahdal 19.08.2017 / 04:23