Re: paquets corrompus : comment les réparer ?
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
Reply to: