Impossible de mettre à jour nginx à cause de debconf

5

Je suis sur 14.04.5 LTS. Je reçois cette erreur lors de l'exécution d'une mise à niveau normale d'apt-get:

Setting up nginx-common (1.10.1-3+trusty1) ...
dpkg: error processing package nginx-common (--configure):  
 subprocess installed post-installation script returned error exit status 1

J'ai omis toutes les erreurs suivantes causées par ceci: "Le paquet nginx-common n'est pas encore configuré.", etc.

J'ai suivi le processus dans cette réponse pour déboguer .postinst et ne dépasse jamais la 3ème ligne: . /usr/share/debconf/confmodule - c'est ce qui renvoie le 1 .

J'ai essayé cette solution , mais cela n’a pas aidé, debconf est définitivement accessible. Et celles-ci (l'erreur persiste). Je ne dispose d'aucune directive d'écoute ipv6 dans les fichiers de configuration inclus, pour autant que je sache.

Je n'ai aucune idée de la façon dont je déboguerais debconf pour voir pourquoi cela échoue. Est-ce que quelqu'un sait ce que je devrais essayer ensuite?

Modifier: nouvelles mises à jour, elles s’installent mais je reçois cette erreur à la fin:

Setting up nginx-full (1.10.1-3+trusty2) ...
initctl: invalid command: upgrade
Try 'initctl --help' for more information.
invoke-rc.d: initscript nginx, action "upgrade" failed.

Je ne sais pas si je devrais marquer comme résolu.

    
posée Walf 27.10.2016 - 03:23
la source

3 réponses

9

Ce problème spécifique est résolu, veuillez mettre à jour vos paquets!

Référentiels Ubuntu ( Bogue LP 1637058 )

Dans le référentiel proposé par Ubuntu Zesty (il s’agit d’une version en développement, j’espère que vous n’utilisez pas cette fonctionnalité ...), 1.10.1-0ubuntu5 résout ce problème.

Dans Ubuntu Trusty, Xenial et Yakkety, l'équipe de sécurité a publié des versions mises à jour des packages pour résoudre ce problème et considère qu'il s'agit d'une régression dans le package. Ces informations sont détaillées dans le bogue et très brièvement dans le avis de sécurité Ubuntu correspondant (USN-3114-2) , mais ce problème est résolu dans les versions suivantes du package:

  • Ubuntu Trusty: 1.4.6-1ubuntu3.7 (référentiels de sécurité et de mises à jour)
  • Ubuntu Xenial: 1.10.0-0ubuntu0.16.04.4 (référentiels de sécurité et de mises à jour)
  • Ubuntu Yakkety: 1.10.1-0ubuntu1.2 (référentiels de sécurité et de mises à jour)

La version dans les référentiels Ubuntu Precise n'est pas affectée, car elle n'a jamais été modifiée de manière à introduire le CVE qui a provoqué les dernières mises à jour. (Ceci ne s'applique qu'aux dépôts Ubuntu, pas aux PPA.)

PPAs ( Bogue LP 1637200 )

J'ai téléchargé des packages révisés sur le PPA de transfert qui corrige ce problème et implémente un correctif. Celles-ci ont été construites sans problème et ont été copiées sur les PPA principaux et stables sur Launchpad à partir de 12h56 le 27 octobre 2016 (UTC-04: 00).

Cela inclut des correctifs pour Precise, Trusty, Xenial et Yakkety . Les PPA ne bénéficient pas encore du soutien de Zesty.

  

Divulgation obligatoire:

     

Je suis la personne principale de l’équipe serveur Ubuntu chargée des paquets nginx . Je maintiens également les PPA qui relèvent de l'équipe à lien .

     

J'ai également des connaissances directes sur ce problème et sur le processus de mise à disposition des correctifs, car j'ai aidé à découvrir que le problème affecte les mises à jour de sécurité récentes, ainsi que Debian.

    
réponse donnée Thomas Ward 27.10.2016 - 18:24
la source
7

Les paquets fixes officiels ont été libérés, utilisez-les

TL; DR Faites défiler vers le bas

Je suis tombé sur ce problème moi-même.

Pour le déboguer un peu plus loin, j'ai défini la variable d’environnement suivante:

export DEBCONF_DEBUG=developer

De cette façon, nous pouvons voir ce que fait debconf.

Maintenant, nous courons

dpkg --configure --pending

Et nous pouvons voir ce qui suit:

 Setting up nginx-common (1.10.1-3+xenial1) ...
 debconf (developer): frontend started
 debconf (developer): frontend running, package name is nginx-common
 debconf (developer): starting /var/lib/dpkg/info/nginx-common.config configure 1.10.1-3+xenial0
 dpkg: error processing package nginx-common (--configure):
 subprocess installed post-installation script returned error exit status 1
 dpkg: dependency problems prevent configuration of libnginx-mod-http-image-filter:
 libnginx-mod-http-image-filter depends on nginx-common (= 1.10.1-3+xenial1); however:
 Package nginx-common is not configured yet.

Maintenant, nous pouvons éditer le script /var/lib/dpkg/info/nginx-common.config , et changer

#!/bin/sh

avec

#!/bin/sh -x pour activer également le débogage.

L'exécution de dpkg --configure --pending encore affichera:

Setting up nginx-common (1.10.1-3+xenial1) ...
debconf (developer): frontend started
debconf (developer): frontend running, package name is nginx-common
debconf (developer): starting /var/lib/dpkg/info/nginx-common.config configure 1.10.1-3+xenial0
+ set -e
+ . /usr/share/debconf/confmodule
+ [ ! 1 ]
+ [ -z  ]
+ exec
+ [  ]
+ exec
+ DEBCONF_REDIR=1
+ export DEBCONF_REDIR
+ logdir=/var/log/nginx
+ log_symlinks_check 1.10.1-3+xenial0
+ [ -z 1.10.1-3+xenial0 ]
+ dpkg --compare-versions 1.10.1-3+xenial0 lt-nl 1.10.1-0ubuntu1.1
+ return
dpkg: error processing package nginx-common (--configure):

Et maintenant, nous pouvons voir notre ligne problématique dans le script

dpkg --compare-versions 1.10.1-3+xenial0 lt-nl 1.10.1-0ubuntu1.1

renvoie le code de sortie 1 comme il se doit - il effectue une comparaison de version et renvoie 0 ou 1 en fonction du résultat.

Je ne commenterai pas comment le réparer correctement, car il s'agit d'un bogue réel qui est suivi à # 1637058 (pour Ubuntu) et # 1637200 (pour les PPA) sur LP.

Solution de contournement :

Modifier /var/lib/dpkg/info/nginx-common.config

et ajoutez un return sur la première ligne de la fonction log_symlinks_check .

par exemple:

 log_symlinks_check() {
     return                <---- here
     # Skip new installations
     [ -z "" ] && return

Cela permettra au processus de mise à niveau de continuer.

EDIT Comme indiqué par @Thomas Ward, cette étape va ignorer une étape de configuration (correction de liens symboliques non sécurisés - s’il en existe) dans / var / log / nginx)

    
réponse donnée Emil Burzo 27.10.2016 - 10:57
la source
6

Même problème sur:

  • 14.04.5 LTS (GNU/Linux 3.13.0-32-generic x86_64)
  • 16.04.1 LTS (GNU/Linux 4.4.0-45-generic x86_64)
  

Configurer nginx-common (1.10.1-3 + trusty1) ...   dpkg: erreur de traitement du paquet nginx-common (--configure):    sous-processus script post-installation installé retourné erreur état de sortie 1   dpkg: les problèmes de dépendance empêchent la configuration de libnginx-mod-http-auth-pam:    libnginx-mod-http-auth-pam dépend de nginx-common (= 1.10.1-3 + trusty1); toutefois:     Le paquet nginx-common n'est pas encore configuré.

     

dpkg: package de traitement des erreurs libnginx-mod-http-auth-pam (--configure):    problèmes de dépendance - laisser sans configuration   dpkg: les problèmes de dépendance empêchent la configuration de libnginx-mod-http-echo:    libnginx-mod-http-echo dépend de nginx-common (= 1.10.1-3 + trusty1); toutefois:     Le paquet nginx-common n'est pas encore configuré.

     

dpkg: package de traitement des erreurs libnginx-mod-http-echo (--configure):    problèmes de dépendance - laisser sans configuration   Des erreurs ont été rencontrées lors du traitement:    nginx-common    libnginx-mod-http-auth-pam    libnginx-mod-http-echo

Résolu

J'ai pu résoudre le problème en effectuant d’abord une sauvegarde du dossier /etc/nginx .

sudo tar -zcf ~/nginx.tgz /etc/nginx

Ensuite, j'ai purgé tout ce qui concernait nginx du système. Je devais le faire au fur et à mesure du déclenchement des problèmes de dépendance.

sudo apt-get purge nginx-full
sudo apt-get purge nginx-common
sudo apt-get purge nginx*

Après cela, installez nginx sur le système sudo apt-get install nginx-full .

Et enfin, restaurez le dossier /etc/nginx avec sudo tar -zxf ~/nginx.tgz et redémarrez nginx en utilisant sudo service nginx restart

J'espère que ça aide!

    
réponse donnée Sergei Filippov 27.10.2016 - 04:30
la source

Lire d'autres questions sur les étiquettes