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

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: