Questão porque `dpkg -l | grep package` está mostrando um pacote depois de ser removido


Para desinstalar um pacote (Ex: tor) instalado a partir 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 tenho,

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 eu desinstalo qualquer pacote eu não deveria ter nada dpkg -l Lista. É verdade? Ou apt-get remove ou purge faz outro trabalho mas não desinstala?


4
2018-03-28 14:53


origem




Respostas:


Observe o primeiro duas cartas da produção de dpkg -l tor que diz un

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

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

sudo dpkg --clear-avail

A partir de man dpkg

--clear-avail
          Erase  the  existing  information  about   what   packages   are
          available.

4
2018-03-28 15:36



Usando sudo dpkg --clear-avail não funciona para mim. - wsw
Nem para mim. (Ubuntu 16.04 LTS) - HeinrichStack


Parece que o @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: na embalagem foo, mas foo em si já não está listado (isso não deve acontecer desde que você use apenas repositórios oficiais Debian / Ubuntu estáveis) dpkg -l tor vou mencioná-los.

grep-status (não é necessário root) é um comando legal 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

0
2017-08-19 02:23