J’ai un serveur qui tournait sur Debian stable Jessie (old stable). J’ai décidé de faire une upgrade vers Stretch cette semaine. Comme préconisé dans la documentation, j’ai mis aptitude de coté et j’ai utilisé apt-get.
J’ai mis à jour ma machine sous jessie (aptitude update && aptitude upgrade && aptitude dist-upgrade). J’ai mis à jour mon sources.list (s/jessie/stretch/) et j’ai réalisé ces commandes : apt-get update puis apt-get upgrade puis apt-get dist-upgrade. Globalement, ça a fait le taf mais j’ai des paquets sont parti grave en sucette.
Typiquement, j’ai un paquet qui ne veut rien entendre : ca-certificate.
# apt install -f
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 :
[...]
Veuillez utiliser « apt autoremove » pour les supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
Paramétrage de ca-certificates (20161130+nmu1+deb9u1) ...
Updating certificates in /etc/ssl/certs...
dpkg: erreur de traitement du paquet ca-certificates (--configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
ca-certificates
E: Sub-process /usr/bin/dpkg returned an error code (1)
# dpkg --audit
Les paquets suivants sont à demi configurés, probablement à cause de
problèmes survenus lors de la première configuration. Il faudrait réessayer
de les configurer en utilisant dpkg --configure <paquet> ou l'option
configure du menu de dselect :
ca-certificates Common CA certificates
# dpkg --configure ca-certificates
Paramétrage de ca-certificates (20161130+nmu1+deb9u1) ...
Updating certificates in /etc/ssl/certs...
dpkg: erreur de traitement du paquet ca-certificates (--configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
ca-certificate
J’ai essayé le classique apt install -f et rien à faire. Idem avec apt-get install -f.
A part regarder ce qui provoque l’erreur dans le script de post-installation, je ne vois pas trop.
Pour ce faire, tu peux chercher le fichier /var/lib/dpkg/info/ca-certificates.postinst
Il est assez long ce fichier, donc analyser le code peut être fastidieux, à la place tu peux ajouter set -x au début du script (mais après le shebang), et retenter un apt install -f ou toute autre opération qui doit appeler ce script.
Toute l’exécution du script sera alors très verbeuse, et tu pourras voir en direct à quel moment le script est en erreur (et vu qu’il est en set -e, à la première erreur non gérée, il sort en erreur).
Si l’opération que tu identifies comme responsable de l’erreur ne te semble pas importante (par exemple, un rm -r sur un répertoire qui n’existe pas, ça arrive), tu peux éventuellement ajouter || true juste après l’instruction en question.
C’est vraiment du bidouillage, mais ça peut aider à s’en sortir dans certaines situations.
Merci pour cette première réponse rapide !
Je cherchais à rendre l’installe plus verbeuse et cette option a fait le taf.
Voici la fin du log, je vais continuer mes recherches.
Traitement des actions différées (« triggers ») pour ca-certificates (20161130+nmu1+deb9u1) ...
+ update-ca-certificates
Updating certificates in /etc/ssl/certs...
+ exit 0
W: APT had planned for dpkg to do more than it reported back (0 vs 4).
Affected packages: ca-certificates:amd64
J’ai déjà testé et j’ai oublié de mettre le retour ici :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 1 réinstallés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
E: Internal Error, No file name for ca-certificates:amd64
Je ne trouve pas le .deb dans /var (via find /var -name "*ca-certificate*.deb").
[13:23] <root@asuka:~> # sudo apt install --reinstall ca-certificates
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
0 mis à jour, 0 nouvellement installés, 1 réinstallés, 0 à enlever et 0 non mis à jour.
1 partiellement installés ou enlevés.
Après cette opération, 0 o d'espace disque supplémentaires seront utilisés.
E: Internal Error, No file name for ca-certificates:amd64
Edit : bon…ça fait plusieurs jours que je suis en galère et j’ai essayé pas mal de trucs. J’ai réessayé un apt purge ca-certificates, puis une install, j’ai eu l’erreur de dpkg (exit 1). J’ai réalisé ensuite un dpkg --configure ca-certificates et il est passé par miracle.
J’avais fais le test aussi. Je l’ai d’ailleurs réalisé à nouveau tout à l’heure en constatant que le .deb n’était pas dans /var. Je pense que c’est lui qui a du être purgé (cf l’édition de mon précédent poste).
Du coup, c’est à priori résolu mais j’ai du mal à comprendre.
Merci pour votre aide et votre réactivité
[...]
Err:9 https://packages.sury.org/php stretch Release
gnutls_handshake() failed: Public key signature verification has failed.
Atteint:10 http://repo.zabbix.com/zabbix/4.0/debian stretch InRelease
Lecture des listes de paquets... Fait
E: The repository 'https://packages.sury.org/php stretch Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Calcul de la mise à jour... Fait
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Je pense que le problème n’est pas directement lié, mais je me trompe peut-être.
Solution trouvée sur https://github.com/signalapp/Signal-Desktop/issues/2483
C’est le paquet libgnutls-deb0-28 qui engendre cette erreur.
Il est proposé de downgrader librtmp1 en version 2.4+20151223.gitfa8646d.1-1+b1 afin de pouvoir supprimer libgnutls-deb0-28