Le samedi 22 janvier 2005 à 00:13 +0000, Gerard Kohler a écrit : > bonjour, > > je n'arrive pas à enlever ou installer des paquets sans que dpkg me > signale des paquets corrompus. > > voici le résultat de > :# dpkg -l |grep -v ^ii > > Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder > | > état=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé > |/ Err?=(aucune)/H=é garder/besoin Réinstallation/X=les deux (état,Err: > majuscule=mauvais) > ||/ Nom Version Description > +++-==============-==============-============================================ > rc nfs-kernel-ser 1.0.6-3 Kernel NFS server support > rc webmin-heartbe 1.160-3 heartbeat monitor control module for webmin > > lorsque je fais : > :# dpkg -r webmin-heartbe > > cela me dit : > dpkg - avertissement : requête ignorée : suppression de > webmin-heartbe, qui n'est pas installé. > > de même pour nfs-kernel-ser > > Comment m'en sortir ?
Cela signifie qu'il n'y a plus que les fichiers de configuration (les scripts dans /var/lib/dpkg/info/, pas dans /etc, hein): les paquets en eux-même ne sont plus installés. C'est ce qui arrive lorsqu'on supprime un paquet avec l'une des commandes suivantes: # apt-get remove <paquet> # aptitude remove <paquet> Si tu voulais purger complètement le paquet, y compris les scripts de configuration, et donc de la liste, il faut en plus faire: # dpkg --purge <paquet> Pour faire tout d'une fois, tu peux employer l'une des commandes suivantes et respectivement équivalentes aux précédentes: # apt-get --purge remove <paquet> # aptitude purge <paquet> Si tu souhaites les ré-installer, rien de plus simple: # apt-get install <paquet> # aptitude install <paquet> > de plus comment supprimer un paquet malgrè les dépendances : > > je veux enlever tous les paquets d 'apache2 pour remetre apache 1.... > mais il me demande de supprimer phpmyadmin, suis-je obligé de l'enlever > puis de le réinstaller ? ou existe-t-il un moyen pour contourner cela ? Si on consulte les dépendances du paquet phpmyadmin, il en ressort ceci: # aptitude show phpmyadmin | grep Depends Depends: php4 (>= 4.1.0) | php4-cgi (>= 4.1.0) | php5 | php5-cgi, php4-mysql | php5-mysql | php5-mysqli, apache | apache-perl | apache-ssl | apache2 | httpd, debconf (>= 0.2.26), ucf (>= 0.8) Ce paquet dépend donc soit d'apache, apache-perl, apache-ssl, apache2 ou httpd (ce dernier étant un Provides) Les paquets apache et apache2 (indirectement puisqu'il dépend d'un des mpm: worker, prefork ou perchild) fournissent tous un démon httpd: # aptitude show apache | grep Provides Provides: httpd-cgi, httpd aptitude show apache2-mpm-worker Provides: apache2-modules, apache2, httpd, httpd-cgi Et je pourrais étendre la longue liste avec apache-perl, caudium ou encore boa. Que faire dans ce cas de figure ? Simple: il suffit d'installer un paquet alternatif fournissant la même fonctionnalité (Provides) et apt se chargera de dé-installer le précédent paquet (par défaut, sans le purger mais tu peux l'y forcer en te référant à la documentation ou bien effectuer le purge après coup). -- Raphaël 'SurcouF' Bordet http://debianfr.net/ | surcouf at debianfr dot net

