[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: purger les reference a un package pourri (etait Re[2]: desinstaller un package -mal- installe)




Le  6 Mar, Nathanael Camelot a écrit:
NC> Pas de reinstallation / purge / desinstallation possible, avec ou sans
NC> --force(-remove-reinstreq || -all)
NC> 
NC> Je ne peux plus rien installer / mettre a jour (par contre apt-get
NC> update fonctionne comme un charme) donc je suis maintenant
NC> a la recherche d'une methode bourrin pour supprimer toute reference a
NC> ce #%$&à= de package dans la base apt. Si vous avez une idée, je
                                    s/apt/dpkg/
NC> suis preneur.
NC> 
Tu édites à la main /var/lib/dpkg/status

Tu recherches ton paquet et tu vires les lignes qui le concerne.
Les descriptions de paquet commencent par :
Package: nom_du_paquet
et se terminent à la première ligne vide suivante.

Tu enlèves simplement les lignes depuis la ligne «Package: toto» jusu'à
la première ligne vide. Fait attention à ne laisser qu'une seule ligne
blanche entre deux paquets. Je sais pas si c'est grave mais bon, on
n'est jamais trop prudent.

Ensuite tu déplaces les fichiers /var/lib/dpkg/info/toto.*

Voila, tu as encore tous les fichiers du paquet installés mais dpkg
n'est pas au courant qu'il sont là, et apt non plus. Si tu veux les
virer, tu regardes le contenus du fichier toto.list qui était dans
/var/lib/dpkg/info/.

Si tu veux. Il y a aussi la possibilité de faire croire à dpkg que le
paquet est bien installé. Tu changes la ligne Status de ton paquet de
telle sorte qu'elle soit exactement comme ça :
Status: install ok installed

	Christophe
-- 
char*p="[)1++++++11+(QI1)9191991)9)1)(II1)919Y91)9)1)(AK+9;991+3*(9I1*IY991)Q1\
)(1I1))A91991)Q1)(+)1)1++9;)Q1+(";main(_){while(*p){for(_=*p-32>>3;_;--_)
putchar(' ');if(!(_=*p++-32&7))putchar('\n');else while(_--)printf("_/");}}



Reply to: