web-dev-qa-db-fra.com

pourquoi `dpkg -l | grep package` affiche un paquet après avoir été purgé

Pour désinstaller un paquet (Ex: tor) installé à partir du référentiel, vous devez utiliser

Sudo apt-get remove tor

Je l'ai fait mais dpkg -l | grep tor a montré quelque chose contre le paquet. Ensuite j'essaye

Sudo apt-get purge tor

Mais quand je vérifie dpkg -l | grep tor je suis,

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)

Je pense que lorsque je désinstalle un paquet, je ne dois rien avoir dans la liste dpkg -l. Est-ce vrai? Ou apt-get remove ou purge est-ce qu'un autre fonctionne mais ne désinstalle pas?

4

Notez le premier deux lettres de la sortie de _dpkg -l tor_ qui dit un

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

parfois, dpkg conserve ces entrées pour les références. Pour supprimer ces entrées problématiques, exécutez dans le terminal,

_Sudo dpkg --clear-avail
_

De man dpkg

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

Il semble que @souravc n’ait qu’une partie de la solution.

(Remarque: je fais ceci sur Debian, je suppose que cela devrait aussi s'appliquer principalement à Ububtu.)

/ var/lib/dpkg/status et/var/lib/dpkg/available contiennent des informations sur les paquetages disponibles pour l'installation (en quelque sorte ce que fait apt), installés ou tout simplement des fichiers de configuration restants. Si l'un de ces packages (par exemple, bar) Depends: sur le package foo, mais foo lui-même ne figure déjà pas dans la liste (cela ne devrait pas arriver tant que vous utilisez uniquement la version officielle). stable Debian/Ubuntu repos) dpkg -l tor les mentionnera.

grep-status (aucune racine requise) est une commande soignée qui peut vous aider à localiser le package qui est le coupable:

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

maintenant vous pouvez désinstaller ou purger le paquet en utilisant par exemple:

# dpkg -r bar
# dpkg -P bar
0
Alois Mahdal