Erro ao atualizar o nginx no Stretch

0

Nas últimas atualizações de segurança de roteamento do Stretch Debian, eu tive um problema. Ao tentar instalar as atualizações de segurança e, consequentemente, atualizando nginx , recebi o seguinte erro abaixo.

Eu tentei executar apt-get upgrade novamente ou apt-get install com qualquer um dos pacotes envolvidos, mas nada parece funcionar.

O que fazer?

$ apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
6 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 
Setting up libnginx-mod-stream (1.10.2-2) ...
nginx: [alert] kill(1433, 1) failed (3: No such process)
dpkg: error processing package libnginx-mod-stream (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up libnginx-mod-http-echo (1.10.2-2) ...
nginx: [alert] kill(1433, 1) failed (3: No such process)
dpkg: error processing package libnginx-mod-http-echo (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx-full:
 nginx-full depends on libnginx-mod-http-echo (= 1.10.2-2); however:
  Package libnginx-mod-http-echo is not configured yet.
 nginx-full depends on libnginx-mod-stream (= 1.10.2-2); however:
  Package libnginx-mod-stream is not configured yet.

dpkg: error processing package nginx-full (--configure):
 dependency problems - leaving unconfigured
Setting up libnginx-mod-http-upstream-fair (1.10.2-2) ...
nginx: [alert] kill(1433, 1) failed (3: No such process)
dpkg: error processing package libnginx-mod-http-upstream-fair (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up libnginx-mod-http-geoip (1.10.2-2) ...
nginx: [alert] kill(1433, 1) failed (3: No such process)
dpkg: error processing package libnginx-mod-http-geoip (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx:
 nginx depends on nginx-full (<< 1.10.2-2.1~) | nginx-light (<< 1.10.2-2.1~) | nginx-extras (<< 1.10.2-2.1~); however:
  Package nginx-full is not configured yet.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.
 nginx depends on nginx-full (>= 1.10.2-2) | nginx-light (>= 1.10.2-2) | nginx-extras (>= 1.10.2-2); however:
  Package nginx-full is not configured yet.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.

dpkg: error processing package nginx (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libnginx-mod-stream
 libnginx-mod-http-echo
 nginx-full
 libnginx-mod-http-upstream-fair
 libnginx-mod-http-geoip
 nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
    
por Rui F Ribeiro 01.12.2016 / 03:07

1 resposta

2

Por fim, analisando o problema e observando os scripts de pós-instalação, o problema foi determinado. Ao instalar / atualizar qualquer um desses nginx componentes, cada um desses pacotes, tente reiniciar o nginx e verificar o sucesso da operação.

Portanto, em nossas operações de atualização, precisamos parar monit antes de fazer o ciclo de atualizações / upgrades de segurança de manutenção, para não iniciar nginx no meio do processo de apt-get upgrade .

A correção foi finalmente e em ordem:

  • parando monit ;
  • fazendo um (p)kill -9 para os processos nginx (estranhamente a parada parecia não ser mais efetiva)
  • fazendo um service start nginx
  • e finalmente fazendo novamente apt-get upgrade novamente.
  • Finalmente, no final de uma atualização bem-sucedida, execute service monit start .

Desta vez sem monit atrapalhando, o upgrade foi efetivo.

No final do dia, a lição é modificar nossos procedimentos de atualização padrão e alterar o nosso guia Ansible para interromper ou suspender idealmente o monit antes do processo de atualizações de segurança.

    
por 01.12.2016 / 03:07