apt-get upgrade - ошибка супервизора

У меня есть два сервера Ubuntu 16.04.2 LTS на AWS. Я хотел исправить их, но получаю сообщение об ошибке, которое я могу Не знаю, что делать дальше.

sudo apt-get upgrade дает мне:

Setting up supervisor (3.2.0-2ubuntu0.1) ...
insserv: script supervisor: service supervisor already provided!
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package supervisor (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 supervisor
E: Sub-process /usr/bin/dpkg returned an error code (1)

На основании других похожих ошибок я пробовал:

sudo apt-get clean && sudo apt-get autoremove 
sudo apt-get -f install
sudo dpkg --configure -a

Эти серверы далеко не «чистые». Они были созданы как копии С точки зрения программного обеспечения, у них есть PHP 7.0, Laravel и работают очереди Laravel под супервизором. Но я не знаю, имеет ли это значение для этого.

Я просмотрел список проблем супервизора, но не нашел никаких проблем, которые могли бы относиться ко мне.

0
задан 1 April 2017 в 00:29
2 ответа

Похоже, у вас уже установлен супервизор из другого источника. Программа insserv управляет сценариями запуска и не может зарегистрировать копию этого пакета супервизора , потому что у нее уже есть супервизор , настроенный для запуска. Взгляните на

grep Provides /etc/init.d/*

и посмотрите, какие скрипты утверждают, что предоставляют супервизора.

Что касается исправления этого, вам нужно отследить, откуда появился существующий супервизор , и обновить его. так же. Если вы запустите dpkg -S /etc/init.d/filename, он сообщит вам, пришел ли он из какого-то другого пакета (может быть, вы установили что-то из PPA, который связывает супервизор с другим пакетом?), если ничего не возникает, то вполне вероятно, что существующий супервизор был установлен вручную из бинарной загрузки или собран из исходных кодов.

Другой вариант - запустить чистый образ 16.4 и (если вы хотите php7.1 вместо 7.0 или требуется другое программное обеспечение, которого нет в 16.4) найдите поддерживаемые PPA с необходимыми вам версиями программного обеспечения. Задокументируйте все, что вы устанавливаете, включая версии, которые вы установили, и откуда вы их взяли (особенно, если оно было установлено без пакета), и проверьте, будет ли ваше программное обеспечение работать с образом. Вы также захотите отслеживать зависимости, особенно то, что требовалось для данного пакета. Это менее важно при использовании apt , но если вы создаете что-то вручную, вам нужно не забыть проверить, что app будет работать с последней версией libfoo перед обновлением libfoo . Если инвестировать на этот раз сейчас, будет намного легче поддерживать движение вперед.

1
ответ дан 4 December 2019 в 16:18

В итоге, диагностируя проблему, я наткнулся на решение. @DerfK направил меня на верный путь. В итоге даже после "удаления" супервизора и последующего исправления сервера он все еще был там. Это несмотря на то, что я изначально использовал apt-get для установки супервизора.

# removed it    
sudo apt-get remove supervisor

# patched it
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt autoremove

# after a reboot, this still lists it as running 
service --status-all

Edit # 2 Мне напомнили, почему важно вести подробные записи при создании сервера. Я нашел записку, в которой говорилось:

created a supervisord from https://raw.githubusercontent.com/Supervisor/initscripts/master/ubuntu
-Note: This should not have been necessary.  supervisor is supposed to run on startup, but it wasn't
sudo chmod +x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults

Итак, в итоге я правильно установил супервизор, но запуск был необычным, как намекал @DerfK. Итак, правильное исправление заключалось в следующем:

  1. Избавиться от моих сценариев /etc/init.d/supervisor и /etc/init.d/supervisord
  2. sudo apt-get install supervisor
  3. После установки он был важно пройти цикл apt-get update, apt-get upgrade, apt-get dist-upgrade после установки и до того, как перезагрузка не запустится, иначе супервизор по какой-то причине не запустится.

все исправлено.

0
ответ дан 4 December 2019 в 16:18

Теги

Похожие вопросы