Não é possível atualizar o nginx por causa do debconf

5

Estou em 14.04.5 LTS. Eu recebo este erro ao executar uma atualização normal do 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

Eu omiti todos os erros subsequentes causados por isso, "O pacote nginx-common ainda não está configurado.", etc.

Eu segui o processo em esta resposta para depurar o .postinst e ele nunca passou da terceira linha: . /usr/share/debconf/confmodule - é o que está retornando o 1 .

Eu tentei esta solução mas não ajudou, o debconf está definitivamente acessível. E estes (o erro persiste). Eu não tenho diretivas ipv6 listen em nenhum arquivo conf incluído, até onde eu saiba.

Eu não tenho idéia de como depurar o debconf para ver por que ele está falhando. Alguém sabe o que devo tentar em seguida?

Editar: Novas atualizações, elas são instaladas, mas eu recebo esse erro no final:

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.

Não tenho certeza se devo marcar como resolvido.

    
por Walf 27.10.2016 / 03:23

3 respostas

9

Este problema específico foi corrigido. Atualize seus pacotes!

Repositórios do Ubuntu ( LP Bug # 1637058 )

No repositório proposto do Ubuntu Zesty (esta é uma versão em desenvolvimento, espero que você não esteja usando isso ...), 1.10.1-0ubuntu5 resolve esse problema.

No Ubuntu Trusty, Xenial e Yakkety, a equipe de segurança lançou versões atualizadas dos pacotes para resolver esse problema e está considerando uma regressão no pacote. Esta informação está detalhada no bug e muito brevemente no Comunicado de Segurança do Ubuntu (USN-3114-2) , mas esse problema é corrigido nas seguintes versões do pacote:

  • Ubuntu Trusty: 1.4.6-1ubuntu3.7 (repositórios de segurança e atualizações)
  • Ubuntu Xenial: 1.10.0-0ubuntu0.16.04.4 (repositórios de segurança e atualizações)
  • Ubuntu Yakkety: 1.10.1-0ubuntu1.2 (repositórios de segurança e atualizações)

A versão nos repositórios do Ubuntu Precise não é afetada, já que eles nunca foram alterados de forma a introduzir o CVE que provocou as atualizações recentes. (Isso se aplica apenas aos repositórios do Ubuntu, não aos PPAs.)

PPAs ( LP Bug # 1637200 )

Enviei pacotes revisados para o PPA de preparo que trata desse problema e implemente uma correção. Eles foram construídos sem problemas e foram copiados para os PPAs Mainline e Stable primários no Launchpad a partir das 12:56 h do dia 27 de outubro de 2016 (UTC-04: 00).

Isso inclui correções para Preciso, Confiável, Xenial e Yakkety . Os PPAs ainda não têm suporte ao Zesty.

  

Divulgação obrigatória:

     

Eu sou a pessoa principal na equipe do Ubuntu Server responsável pelos pacotes nginx . Eu também mantenho os PPAs que residem sob a equipe no link .

     

Eu também tenho conhecimento direto sobre esta questão, e o processo de correções está sendo disponibilizado, porque eu ajudei a descobrir que o problema afeta as recentes atualizações de Segurança feitas, e também o Debian.

    
por Thomas Ward 27.10.2016 / 18:24
7

Pacotes fixos oficiais foram liberados, use aqueles

TL; DR Rola para a parte inferior

Acabei de me deparar com este problema.

Para depurar um pouco mais, defino a seguinte variável de ambiente:

export DEBCONF_DEBUG=developer

Dessa forma, podemos ver o que o debconf está fazendo.

Agora corremos

dpkg --configure --pending

E podemos ver o seguinte:

 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.

Agora podemos editar o script /var/lib/dpkg/info/nginx-common.config e alterar

#!/bin/sh

com

#!/bin/sh -x para ativar a depuração também.

A exibição de dpkg --configure --pending novamente será exibida:

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):

E agora podemos ver nossa linha problemática no script

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

retorna o código de saída 1, como deveria - está fazendo uma comparação de versão e retorna 0 ou 1, dependendo do resultado.

Não vou comentar como corrigi-lo corretamente, pois é um bug real sendo rastreado em # 1637058 (para o Ubuntu) e # 1637200 (para PPAs) em LP.

Solução alternativa :

Edite o /var/lib/dpkg/info/nginx-common.config

e adicione um return na primeira linha da função log_symlinks_check .

por exemplo:

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

Isso permitirá que o processo de atualização continue.

EDIT Como apontado por @Thomas Ward, isto irá pular uma etapa de configuração (consertando links simbólicos inseguros - se houver algum - em / var / log / nginx)

    
por Emil Burzo 27.10.2016 / 10:57
6

Ter o mesmo problema em:

  • 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)
  

Configurando o nginx-common (1.10.1-3 + trusty1) ...   dpkg: pacote de processamento de erros nginx-common (--configure):    subprocesso instalado script de pós-instalação retornou status de saída de erro 1   dpkg: problemas de dependência impedem a configuração do libnginx-mod-http-auth-pam:    O libnginx-mod-http-auth-pam depende do nginx-common (= 1.10.1-3 + trusty1); Contudo:     O pacote nginx-common ainda não está configurado.

     

dpkg: pacote de processamento de erros libnginx-mod-http-auth-pam (--configure):    problemas de dependência - deixando desconfigurado   dpkg: problemas de dependência impedem a configuração do libnginx-mod-http-echo:    O libnginx-mod-http-echo depende do nginx-common (= 1.10.1-3 + trusty1); Contudo:     O pacote nginx-common ainda não está configurado.

     

dpkg: pacote de processamento de erros libnginx-mod-http-echo (--configure):    problemas de dependência - deixando desconfigurado   Erros foram encontrados durante o processamento:    nginx-common    libnginx-mod-http-auth-pam    libnginx-mod-http-echo

Resolvido

Consegui corrigir o problema primeiro fazendo um backup da pasta /etc/nginx .

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

Então eu purgou qualquer coisa a ver com o nginx do sistema. Eu tive que fazer isso na medida em que os problemas de dependência eram acionados.

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

Depois disso, instale o nginx de volta no sistema sudo apt-get install nginx-full .

E, finalmente, restaure a pasta /etc/nginx com sudo tar -zxf ~/nginx.tgz e reinicie o nginx usando sudo service nginx restart

Espero que isso ajude!

    
por Sergei Filippov 27.10.2016 / 04:30