Un petit post pour s’en sortir quand un paquet ne veut pas se désinstaller. C’est une petite histoire qui m’est arrivé quand je me suis intéressé à Nagios2. Voici l’erreur que j’avais :
% sudo apt-get install nagios2
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :
Les paquets suivants contiennent des dépendances non satisfaites :
nagios2-common: Dépend: nagios-plugins-basic mais ne sera pas installé
Dépend: nagios2-doc mais ne sera pas installé
E: Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet
(ou indiquez une solution).
% sudo apt-get install -f
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Correction des dépendances... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
nagios-plugins-basic nagios2-doc nagios2-common
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets supplémentaires suivants seront installés :
nagios-plugins-basic nagios2-doc
Paquets suggérés :
nagios2 nagios-text nagios
Les NOUVEAUX paquets suivants seront installés :
nagios-plugins-basic nagios2-doc
0 mis à jour, 2 nouvellement installés, 0 à enlever et 2 non mis à jour.
1 partiellement installés ou enlevés.
Il est nécessaire de prendre 0o/1478ko dans les archives.
Après dépaquetage, 3822ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? O
Sélection du paquet nagios-plugins-basic précédemment désélectionné.
(Lecture de la base de données... 192016 fichiers et répertoires déjà installés.)
Dépaquetage de nagios-plugins-basic (à partir de .../nagios-plugins-basic_1.4.8-2.1_i386.deb) ...
Sélection du paquet nagios2-doc précédemment désélectionné.
Dépaquetage de nagios2-doc (à partir de .../nagios2-doc_2.9-1_all.deb) ...
Paramétrage de nagios-plugins-basic (1.4.8-2.1) ...
Paramétrage de nagios2-doc (2.9-1) ...
Paramétrage de nagios2-common (2.9-1) ...
Not replacing deleted config file /etc/nagios2/apache2.conf
Not replacing deleted config file /etc/nagios2/conf.d/host-gateway_nagios2.cfg
include file /etc/nagios2/apache2.conf does not exist!
dpkg : erreur de traitement de nagios2-common (--configure) :
le sous-processus post-installation script a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
nagios2-common
E: Sub-process /usr/bin/dpkg returned an error code (1)
Il manque /etc/nagios2/apache2.conf.
% sudo apt-file update
% sudo apt-file search 'apache2.conf' | grep nagios2
nagios2-common: usr/share/doc/nagios2-common/examples/apache2.conf
Le fichier vient avec nagios2-common. Il est déjà installé, on va le réinstaller :
% sudo apt-get remove nagios2-common
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
nagios-plugins-basic nagios2-doc
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
nagios2-common
0 mis à jour, 0 nouvellement installés, 1 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 0o dans les archives.
Après dépaquetage, 414ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 192360 fichiers et répertoires déjà installés.)
Suppression de nagios2-common ...
dpkg : erreur de traitement de nagios2-common (--remove) :
le sous-processus pre-removal script a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
nagios2-common
E: Sub-process /usr/bin/dpkg returned an error code (1
Ce qu’il faut voir ici c’est la ligne :
dpkg : erreur de traitement de nagios2-common (--remove) :
le sous-processus pre-removal script a retourné une erreur de sortie d'état 1
Ceci correspond au script /var/lib/dpkg/info/nagios2-common.prerm. On peut l’éditer et le faire parler en rajoutant l’option -x au shell :
#!/bin/sh -xe
On relance :
% sudo apt-get remove nagios2-common
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
nagios-plugins-basic nagios2-doc
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
nagios2-common
0 mis à jour, 0 nouvellement installés, 1 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 0o dans les archives.
Après dépaquetage, 414ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 192360 fichiers et répertoires déjà installés.)
Suppression de nagios2-common ...
+ . /usr/share/nagios2/debian/httpd.webapps-common
++ wc_httpd_apaches='apache apache-ssl apache-perl apache2'
++ '[' '!' '' ']'
++ wc_httpd_supported='apache apache-ssl apache-perl apache2'
+ apacheconf=/etc/nagios2/apache2.conf
+ case "$1" in
++ wc_httpd_apache_configured /etc/nagios2/apache2.conf nagios2
++ local h incfile httpds confdir
++ '[' '!' /etc/nagios2/apache2.conf ']'
++ incfile=/etc/nagios2/apache2.conf
++ shift
++ '[' '!' nagios2 ']'
++ name=nagios2
++ shift
++ '[' '!' -e /etc/nagios2/apache2.conf ']'
++ echo 'include file /etc/nagios2/apache2.conf does not exist!'
++ return 1
+ configured_servers='include file /etc/nagios2/apache2.conf does not exist!'
dpkg : erreur de traitement de nagios2-common (--remove) :
le sous-processus pre-removal script a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
nagios2-common
E: Sub-process /usr/bin/dpkg returned an error code (1)
Voila, nous y sommes, l’absence de la conf nous empêche de réinstaller nagios2-common :
++ echo 'include file /etc/nagios2/apache2.conf does not exist!'
Le script ne trouve pas /etc/nagios2/apache2.conf.
Le script /var/lib/dpkg/info/nagios2-common.prerm a l’air de simplement arrêter les services qui dépendent du package. Ce n’est pas très important, on va essayer de s’en passer :
#!/bin/sh -e
exit 0;
(...)
On relance :
% sudo apt-get remove nagios2-common
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
nagios-plugins-basic nagios2-doc
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
nagios2-common
0 mis à jour, 0 nouvellement installés, 1 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 0o dans les archives.
Après dépaquetage, 414ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 192360 fichiers et répertoires déjà installés.)
Suppression de nagios2-common ...
Parfait.
% sudo dpkg -l "nagios2*"
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
+++-========================-========================-================================================================
pn nagios2 <néant> (aucune description n'est disponible)
rc nagios2-common 2.9-1 support files for nagios2
ii nagios2-doc 2.9-1 documentation for nagios2dpkg
Le package nagios2-common n’est pas purgé. Purgeons le :
% sudo dpkg -P nagios2-common
(Lecture de la base de données... 192315 fichiers et répertoires déjà installés.)
Suppression de nagios2-common ...
Purge des fichiers de configuration de nagios2-common ...
Voila. Maintenant vérifions que tout est réglé :
% sudo apt-get install nagios2
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
nagios2-common
Paquets suggérés :
nagios-nrpe-plugin
Paquets recommandés :
nagios-plugins nagios-images
Les NOUVEAUX paquets suivants seront installés :
nagios2 nagios2-common
0 mis à jour, 2 nouvellement installés, 0 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 0o/1048ko dans les archives.
Après dépaquetage, 3240ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? O
Préconfiguration des paquets...
Sélection du paquet nagios2-common précédemment désélectionné.
(Lecture de la base de données... 192296 fichiers et répertoires déjà installés.)
Dépaquetage de nagios2-common (à partir de .../nagios2-common_2.9-1_all.deb) ...
Sélection du paquet nagios2 précédemment désélectionné.
Dépaquetage de nagios2 (à partir de .../nagios2_2.9-1_i386.deb) ...
Paramétrage de nagios2-common (2.9-1) ...
Creating config file /etc/nagios2/apache2.conf with new version
Creating config file /etc/nagios2/conf.d/host-gateway_nagios2.cfg with new version
Starting nagios2 monitoring daemon: nagios2.
Paramétrage de nagios2 (2.9-1) ...
Nikel
Trucs utiles
Pour voir les dépendances (dans les 2 sens) d’un paquet :
apt-cache showpkg paquet