web-dev-qa-db-fra.com

Comment enlever proprement un .deb mal installé?

Chaque fois que j'essaie d'utiliser dpkg ou apt-get, j'obtiens l'avertissement suivant:

dpkg: warning: parsing file '/var/lib/dpkg/available' near line 12674 package 'jarnal':
 error in Version string 'build901': version number does not start with digit

En regardant le fichier /var/lib/dpkg/available, je trouve l’entrée

Package: jarnal
Priority: optional
Section: non-free
Maintainer: David K. Levine <[email protected]>
Architecture: all
Version: build901
Depends: Sun-Java5-jre | Sun-Java6-jre
Recommends: Sun-jai, Sun-jai-imageio
Size: 11217466
Description: a Java Notetaker and PDF Annotator... <snip>

qui correspond au fichier /DEBIAN/control dans jarnal-build918_all.deb . J'ai installé ce paquet il y a environ un an (avant de passer à 11.04), mais je ne peux pas le supprimer en utilisant apt ou dpkg ou diverses interfaces.

locate trouve les fichiers installés dans /usr/lib/jarnal/, mais cela semble incomplet - je pense que la désinstallation a échoué - puisque je me souviens de l'avoir déjà utilisée, elle a donc dû être correctement installée à un moment donné.

Quoi qu'il en soit, comment puis-je supprimer proprement les fichiers et les données stockées par apt/dpkg de mon système?

6
Simon

Vous pouvez sauvegarder le fichier available puis le vider (laissez-le là, mais vide).

apt-get n'a pas du tout besoin du fichier, dpkg l'utilise parfois à des fins de référence, mais ce n'est pas indispensable et il sera rempli à nouveau après un certain temps.

Une autre option serait de supprimer manuellement l'entrée problématique jarnal du fichier available.

2
arrange

Modifiez /var/lib/dpkg/available et /var/lib/dpkg/status pour remplacer la ligne Version: du package jarnal par quelque chose que dpkg aime, tel que 0build901.

S'il n'y a aucune entrée dans le fichier status, le paquet n'est par définition pas installé. Il est possible que la désinstallation ait échoué et que vous n'ayez pas terminé le nettoyage correctement. vérifie s'il y a des fichiers /var/lib/dpkg/info/jarnal.*. Si le paquet est installé, il devrait y avoir un fichier jarnal.list avec la liste des fichiers fournis avec le paquet. Si vous supprimez manuellement un paquet mal formé, vous n'avez pas à vous soucier des autres fichiers de /var/lib/dpkg/info.

3
Gilles

S'il s'agit de packages non installés, exécutez simplement Sudo dpkg --clear-avail (à la suite de this )

3
David Fraser