web-dev-qa-db-fra.com

Impossible de mettre à jour nginx à cause de debconf

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, "Le paquet nginx-common n'est pas encore configuré.", Etc.

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

J'ai essayé cette solution mais cela n'a pas aidé, debconf est définitivement accessible. Et ceux-ci (l'erreur persiste). Pour autant que je sache, je n'ai pas de directives ipv6 listen dans les fichiers de configuration inclus.

Je ne sais pas comment déboguer Debconf pour comprendre pourquoi il échoue. Est-ce que quelqu'un sait ce que je devrais essayer ensuite?


Edit: Nouvelles mises à jour, elles s’installent mais j’obtiens 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.

Pas sûr que je devrais marquer comme résolu.

5
Walf

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


Dépôts Ubuntu ( Bogue LP 1637058 )

Dans le référentiel proposé par par Ubuntu Zesty (il s'agit d'une version en développement, j'espère que vous ne l'utilisez pas ...), 1.10.1-0ubuntu5 aborde cette question.

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 envisage actuellement une régression dans le logiciel. paquet. Cette information est détaillée dans le bogue et très brièvement dans le Avis de sécurité Ubuntu (USN-3114-2) , mais ce problème a été résolu dans les versions suivantes du paquet:

  • 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 des référentiels Ubuntu Precise n'est pas affectée, car elle n'a jamais été modifiée de manière à introduire le code CVE à l'origine des dernières mises à jour. (Cela ne s'applique qu'aux référentiels Ubuntu, pas aux PPA.)


PPA ( LP Bug # 16372 )

J'ai chargé des packages révisés dans le PPA de mise en place qui résolvent ce problème et implémentent un correctif. Celles-ci ont été construites sans problème et ont été copiées dans les PPA principal et principal sur le tableau de bord à partir de 12h56 PM le 27 octobre 2016 (UTC-04: 00).

Cela inclut des correctifs pour Precise, Trusty, Xenial et Yakkety . Les PPA n'ont pas encore de support Zesty.


Divulgation obligatoire:

Je suis la personne principale de l'équipe de serveurs Ubuntu chargée des packages nginx. Je gère également les PPA appartenant à l'équipe de https://launchpad.net/~nginx .

J'ai également une connaissance directe de ce problème et du processus de mise à disposition des correctifs, car j'ai aidé à découvrir que le problème affecte les dernières mises à jour de sécurité effectuées, ainsi que Debian.

9
Thomas Ward

Les packages fixes officiels ont été publiés, utilisez ceux

TL; DR Faites défiler vers le bas

J'ai juste rencontré ce problème moi-même.

Pour 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.

Lancer à nouveau dpkg --configure --pending montrera à nouveau:

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 corriger correctement, car il s'agit d'un véritable bogue suivi sur # 1637058 (pour Ubuntu) et # 1637200 (pour les PPA) sur LP.

Solution de contournement :

Éditer /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 "$1" ] && return

Cela permettra au processus de mise à niveau de continuer.

EDIT Comme l'a souligné @Thomas Ward, ceci sautera une étape de configuration (correction des liens symboliques non sécurisés - s'il en existe - dans/var/log/nginx)

7
Emil Burzo

Ayant le 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)

Configuration de nginx-common (1.10.1-3 + trusty1) ... dpkg: package de traitement des erreurs nginx-common (--configure): le script de post-installation installé du sous-processus a renvoyé l'état de sortie d'erreur 1 dpkg: des 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); Cependant: Le paquet nginx-common n'est pas encore configuré.

dpkg: paquet de traitement des erreurs libnginx-mod-http-auth-pam (--configure): problèmes de dépendance - ne pas configurer dpkg: des 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); Cependant: Le paquet nginx-common n'est pas encore configuré.

dpkg: paquet de traitement des erreurs libnginx-mod-http-echo (--configure): problèmes de dépendance laissés non configurés 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 avait trait à 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, ré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 avec Sudo service nginx restart.

J'espère que cela t'aides!

6
Sergei Filippov