В последних обновлениях безопасности маршрутизации Debian Stretch у меня была проблема. При попытке установить обновления безопасности и, следовательно, обновить nginx
, я получил следующую ошибку.
Я снова пробовал запустить apt-get upgrade
или apt-get install
с любым из задействованных пакетов, но, похоже, ничего не работает.
Что делать?
$ 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)
В конечном итоге, проанализировав проблему и просмотрев сценарии после установки, проблема была определена. При установке / обновлении любого из этих компонентов nginx
, каждого из этих пакетов, попробуйте перезапустить nginx
и проверить успешность операции.
Итак, в наших операциях обновления мы должны начать останавливать monit
перед выполнением цикла обновлений / обновлений безопасности, чтобы он не запускал nginx
на полпути процесса ] apt-get upgrade
.
В конечном итоге исправление было сделано в следующем порядке:
monit
; (p) kill -9
для nginx
процессы (странно, что остановка, похоже, больше не действует) запускает nginx
apt-get upgrade
снова. запуск мониторинга службы
. На этот раз, когда monit
не мешал, обновление
было эффективным.
В конце концов, урок состоит в том, чтобы изменить наши стандартные процедуры обновления и изменить нашу книгу сценариев Ansible, чтобы остановить или, в идеале, приостановить monit
перед процессом обновления безопасности.